Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembangunan backend Java: pengaturcaraan tak segerak API menggunakan Java CompletableFuture

Pembangunan backend Java: pengaturcaraan tak segerak API menggunakan Java CompletableFuture

王林
王林asal
2023-06-17 09:22:521572semak imbas

Java ialah bahasa pengaturcaraan yang popular dengan pelbagai kegunaan, daripada membangunkan aplikasi desktop kepada aplikasi web peringkat perusahaan. Dalam pembangunan web, pengaturcaraan tak segerak menjadi semakin penting kerana ia meningkatkan prestasi program dan mengurangkan masa menunggu pengguna. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Java CompletableFuture untuk pengaturcaraan tak segerak API dalam pembangunan backend Java.

Apakah Java CompletableFuture?

Java CompletableFuture ialah API baharu dalam Java8 Ia adalah sambungan Masa Depan yang boleh melaksanakan tugas secara tidak segerak. Ia boleh membantu pembangun Java dengan mudah melaksanakan pengaturcaraan selari dan pengaturcaraan tak segerak, dan lebih ringkas, fleksibel dan lebih mudah digunakan daripada Java Future API tradisional.

Dalam Java CompletableFuture, kita boleh menggunakan fungsi panggil balik (Callback) atau panggilan rantaian (Chaining) untuk mengatur operasi tak segerak. Kaedah pengaturcaraan ini membolehkan kami menggabungkan berbilang operasi tak segerak dengan mudah tanpa membentuk sarang, menjadikan kod lebih ringkas dan lebih mudah difahami.

Mengapa menggunakan Java CompletableFuture untuk pengaturcaraan tak segerak?

Dalam pembangunan back-end Java, faedah menggunakan Java CompletableFuture untuk pengaturcaraan tak segerak adalah jelas. Java CompletableFuture boleh meningkatkan prestasi program anda kerana ia boleh menggunakan sepenuhnya CPU berbilang teras. Jika kita menggunakan API Masa Depan tradisional untuk menulis aplikasi berbilang benang, kita perlu membuat kumpulan benang secara manual dan mengurus benang dalam kumpulan benang, yang akan menjadikan kod itu sangat kompleks dan terdedah kepada ralat. Java CompletableFuture menyelesaikan masalah ini dengan mengurus kumpulan benang secara automatik, yang menjadikan kod kami lebih mudah dan lebih mudah untuk diselenggara.

Java CompletableFuture juga boleh mengurangkan masa menunggu pengguna. Dalam pengaturcaraan segerak tradisional, apabila operasi dipanggil, program menunggu operasi selesai sebelum meneruskan. Ini boleh menyebabkan masa menunggu pengguna yang lebih lama apabila mengendalikan sejumlah besar permintaan. Walau bagaimanapun, menggunakan Java CompletableFuture boleh melakukan operasi secara tak segerak, supaya program boleh kembali serta-merta dan meneruskan pemprosesan permintaan lain, dengan itu mengurangkan masa menunggu pengguna.

Langkah-langkah untuk menggunakan Java CompletableFuture untuk pengaturcaraan tak segerak API

Sekarang mari kita lihat cara menggunakan Java CompletableFuture untuk pengaturcaraan tak segerak API:

Langkah 1: Tentukan operasi tak segerak

Kami boleh menggunakan kaedah statik supplyAsync dan runAsync of Java CompletableFuture untuk mentakrifkan operasi tak segerak:

  • Kaedah supplyAsync boleh digunakan untuk melaksanakan operasi tak segerak dengan nilai pulangan parameter Pembekal dan mengembalikan objek CompletableFuture.
  • Kaedah runAsync boleh digunakan untuk melaksanakan operasi tak segerak tanpa nilai pulangan Kaedah ini menerima parameter Runnable dan mengembalikan objek CompletableFuture.

Sebagai contoh, berikut ialah operasi tak segerak yang ditakrifkan menggunakan kaedah supplyAsync:

CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
    // 执行异步操作
    return "异步操作结果";
});

Langkah 2: Tentukan fungsi panggil balik

Kita boleh menggunakan thenApply of Java CompletableFuture, Kaedah thenAccept dan thenRun mentakrifkan fungsi panggil balik:

  • Kaedah thenApply digunakan untuk menukar hasil operasi tak segerak Kaedah ini menerima parameter Fungsi dan mengembalikan objek CompletableFuture yang baharu.
  • Kaedah ThethenAccept digunakan untuk menggunakan hasil operasi tak segerak Kaedah ini menerima parameter Pengguna dan mengembalikan objek CompletableFuture baharu.
  • Kaedah thenRun tidak menerima output operasi tak segerak Ia hanya melaksanakan tugas Runnable dan mengembalikan objek CompletableFuture baharu selepas operasi tak segerak selesai.

Sebagai contoh, berikut ialah contoh mentakrifkan fungsi panggil balik:

CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
    // 执行异步操作
    return "异步操作结果";
});

CompletableFuture thenFuture = future.thenAccept(result -> {
    // 在异步操作完成后执行的操作
    System.out.println("异步操作结果为:" + result);
});

Langkah 3: Gabungkan operasi tak segerak

Kita boleh menggunakan Java CompletableFuture thenCompose, thenCombine dan Kaedah allOf menggabungkan operasi tak segerak:

  • Kaedah thenCompose digunakan untuk menghantar hasil operasi tak segerak kepada operasi tak segerak yang lain Kaedah ini menerima parameter Fungsi dan mengembalikan objek CompletableFuture baharu.
  • Kaedah ThethenCombine digunakan untuk menggabungkan hasil dua operasi tak segerak Kaedah ini menerima parameter BiFunction dan mengembalikan objek CompletableFuture yang baharu.
  • kaedah allOf boleh menggabungkan berbilang objek CompletableFuture menjadi objek CompletableFuture baharu, yang akan diselesaikan selepas semua objek CompletableFuture selesai.

Sebagai contoh, berikut ialah contoh mengarang operasi tak segerak:

CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> {
    // 执行第一个异步操作
    return "第一个异步操作结果";
});

CompletableFuture<String> future2 = CompletableFuture.supplyAsync(() -> {
    // 执行第二个异步操作
    return "第二个异步操作结果";
});

CompletableFuture<String> combinedFuture = future1.thenCompose(result1 -> {
    // 将第一个异步操作的结果传递给第二个异步操作
    return future2.thenApply(result2 -> result1 + " " + result2);
});

Kesimpulan

Dalam pembangunan backend Java, menggunakan Java CompletableFuture untuk pengaturcaraan tak segerak API boleh menambah baik program prestasi dan mengurangkan masa menunggu pengguna. Java CompletableFuture boleh membantu pembangun dengan mudah melaksanakan pengaturcaraan selari dan pengaturcaraan tak segerak, serta menjadikannya lebih ringkas dan fleksibel. Apabila menggunakan Java CompletableFuture untuk pengaturcaraan tak segerak, kita perlu mentakrifkan operasi tak segerak dahulu, dan kemudian mentakrifkan fungsi panggil balik dan menggabungkan operasi tak segerak. Kaedah pengaturcaraan ini menjadikan atur cara lebih mudah dan lebih mudah difahami serta boleh menjadikan kod kami lebih cekap dan mantap.

Atas ialah kandungan terperinci Pembangunan backend Java: pengaturcaraan tak segerak API menggunakan Java CompletableFuture. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn