Rumah >Java >javaTutorial >Cara Menyegerakkan Benang dalam Java: Bagaimanakah Benang Logik Aplikasi Boleh Menunggu Benang Pangkalan Data untuk Selesai Permulaan?
Menunggu Output Thread dalam Java
Membangunkan aplikasi Java selalunya melibatkan berbilang thread berjalan serentak, memerlukan mekanisme penyelarasan untuk memastikan aliran dan penyegerakan data yang betul . Artikel ini menangani senario tertentu di mana satu utas mesti menunggu output thread lain.
Dalam kes ini, aplikasi menggunakan dua utas: utas logik aplikasi dan utas akses pangkalan data. Walaupun kedua-dua utas mesti berterusan sepanjang hayat aplikasi dan beroperasi secara serentak, utas logik aplikasi mesti pada mulanya menunggu sehingga utas akses pangkalan data sedia.
Potensi Penyelesaian
Persoalannya menimbulkan cabaran dalam mencari penyelesaian yang sesuai. Menggunakan Thread.join() bukan pilihan kerana urutan pangkalan data hanya keluar semasa penutupan aplikasi. Selain itu, mencipta gelung kosong untuk tinjauan pendapat untuk kesediaan pangkalan data membawa kepada penggunaan CPU yang tidak perlu.
Pendekatan CountDownLatch
Penyelesaian yang disyorkan memanfaatkan kelas CountDownLatch, yang menggunakan mekanisme balas . Kaunter dimulakan kepada 1, mewakili satu operasi yang diperlukan untuk diselesaikan.
Pelaksanaan Benang Apl
Dalam urutan logik aplikasi, kod tersebut termasuk:
CountDownLatch latch = new CountDownLatch(1); latch.await();
Kaedah latch.await() menyekat pelaksanaan selanjutnya sehingga pembilang selak mencapai 0, menandakan selesainya permulaan pangkalan data.
Pelaksanaan Benang Pangkalan Data
Sekali utas pangkalan data melengkapkan permulaan, ia melaksanakan:
latch.countDown();
Mengurangkan kaunter selak melepaskan utas apl daripada menunggu.
Pendekatan ini menyegerakkan kedua-dua utas dengan berkesan, memastikan urutan logik aplikasi diteruskan hanya selepas utas pangkalan data sedia. Ia menawarkan mekanisme yang cekap dan tidak menyekat untuk penyelarasan utas, mengelakkan kelemahan gelung menyekat atau mengganggu utas pangkalan data.
Atas ialah kandungan terperinci Cara Menyegerakkan Benang dalam Java: Bagaimanakah Benang Logik Aplikasi Boleh Menunggu Benang Pangkalan Data untuk Selesai Permulaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!