Java Executors: Asynchronous Task Completion Notifications
Operasi menyekat boleh menghalang prestasi aplikasi Java, terutamanya apabila menguruskan banyak tugas serentak. Untuk mengelakkan sekatan, pendekatan tidak menyekat diperlukan untuk memberitahu urutan utama apabila tugasan selesai.
Pertimbangkan senario di mana berbilang baris gilir tugasan perlu diproses, satu demi satu. Penyelesaian yang mudah akan melibatkan penyekatan sehingga setiap tugasan selesai, menggunakan sumber sistem.
Untuk mengatasi isu ini, mekanisme panggil balik boleh dilaksanakan. Tentukan antara muka untuk mengendalikan pemberitahuan penyelesaian tugas dan lulus antara muka ini sebagai hujah kepada tugasan yang akan diserahkan. Tugas itu kemudiannya akan menggunakan kaedah panggil balik setelah selesai.
Sebagai alternatif, Java 8 menyediakan penyelesaian yang lebih komprehensif dengan CompletableFuture. Kelas ini membolehkan penciptaan saluran paip tak segerak, di mana berbilang proses boleh digubah dan dikondisikan selepas selesai.
Berikut ialah contoh menggunakan CompletableFuture:
import java.util.concurrent.CompletableFuture; public class TaskCompletionNotification { public static void main(String[] args) { CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> { // Perform task return "Task result"; }); future.thenAccept(result -> System.out.println("Task completed with result: " + result)); // Main thread continues to run without blocking } }
Pendekatan ini menghapuskan sekatan dan membenarkan urutan utama untuk meneruskan pelaksanaan semasa tugasan selesai di latar belakang. Apabila tugasan selesai, pengguna yang disediakan dipanggil dengan hasil operasi.
Atas ialah kandungan terperinci Bagaimanakah Pelaksana Java Boleh Mengendalikan Pemberitahuan Penyiapan Tugas Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!