Rumah >Java >javaTutorial >Bagaimana untuk Cekap Menunggu Penyelesaian Tugasan Perkhidmatan Pelaksana?
ExecutorService Menunggu Penyelesaian Tugas
Dalam aplikasi berbilang benang, selalunya perlu menunggu semua tugas yang diserahkan kepada ExecutorService untuk diselesaikan sebelum meneruskan. Walaupun teknik kasar seperti pengundian atau sentiasa menyemak kaunter tugas global wujud, penyelesaian yang lebih cekap dan elegan tersedia.
tunggu Penamatan() dan penutupan()
Pendekatan yang disyorkan melibatkan penggunaan kaedah awaitTermination() ExecutorService. Ia membolehkan anda menentukan tamat masa atau menunggu selama-lamanya sehingga benang selesai. Begini caranya:
// Create an ExecutorService instance ExecutorService taskExecutor = Executors.newFixedThreadPool(4); // Submit tasks as needed while(...) { taskExecutor.execute(new MyTask()); } // Shutdown the ExecutorService to prevent new tasks from being submitted taskExecutor.shutdown(); // Wait for threads to complete try { taskExecutor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); } catch (InterruptedException e) { // Handle any interruptions }
Kaedah ini menyekat sehingga urutan selesai atau tamat masa telah dicapai. Anda juga boleh menentukan tamat masa terhingga jika anda mahu aplikasi diteruskan selepas tempoh masa tertentu, walaupun beberapa tugasan belum selesai.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Menunggu Penyelesaian Tugasan Perkhidmatan Pelaksana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!