Rumah >Java >javaTutorial >Bagaimana untuk Cekap Menunggu Penyelesaian Tugasan Perkhidmatan Pelaksana?

Bagaimana untuk Cekap Menunggu Penyelesaian Tugasan Perkhidmatan Pelaksana?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 06:27:45443semak imbas

How to Efficiently Wait for ExecutorService Task Completion?

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!

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