Mematikan Java ExecutorService Dengan Berkesan
Adalah penting untuk menamatkan ExecutorService di Java dengan betul untuk mengelakkan kebocoran sumber dan mengekalkan kestabilan sistem. Walaupun kaedah shutdownNow() mungkin tidak memberikan penamatan yang terjamin, terdapat pendekatan yang disyorkan untuk memastikan penutupan yang cekap.
Kaedah pilihan yang disyorkan oleh dokumentasi API Oracle melibatkan proses dua langkah:
1. Mulakan Penutupan Tertib:
Panggil pool.shutdown() untuk melumpuhkan penyerahan tugasan baharu. Ini membolehkan tugasan yang sedang dilaksanakan untuk diselesaikan, tetapi tiada tugasan baharu akan diterima.
2. Tunggu Penamatan atau Penamatan Paksa:
Gunakan pool.awaitTermination(60, TimeUnit.SECONDS) untuk menunggu tugasan selesai. Jika tugas menunggu terlalu lama, anda boleh melanjutkan tamat masa atau menggunakan gelung dengan while (!pool.awaitTermination(60, TimeUnit.SECONDS)). Jika penamatan tidak dicapai dalam masa yang ditetapkan, panggil pool.shutdownNow() untuk memaksa penamatan tugas yang tinggal.
Kaedah Penutupan Tambahan:
shutdown( ): Memulakan penutupan teratur, membenarkan tugasan yang belum selesai selesai sebelum melumpuhkan penyerahan baharu.
shutdownNow(): Cuba menghentikan semua tugasan serta-merta, mengembalikan senarai tugasan yang tidak lengkap.
menunggu Penamatan(): Sekat sehingga semua tugasan selesai, tamat masa berlaku atau urutan terganggu.
Atas ialah kandungan terperinci Bagaimana untuk Mematikan Java ExecutorService dengan Berkesan untuk Mencegah Kebocoran Sumber dan Mengekalkan Kestabilan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!