Menunggu Output Benang dalam Java
Dalam aplikasi Java yang terdiri daripada dua utas berterusan, satu untuk logik aplikasi dan satu lagi untuk akses pangkalan data , kadangkala perlu untuk utas aplikasi menunggu output utas pangkalan data sebelum meneruskan. Artikel ini meneroka penyelesaian menggunakan CountDownLatch untuk senario ini.
Kedua-dua urutan berjalan serentak sepanjang hayat aplikasi, dengan satu mengendalikan komunikasi pelayan dan satu lagi mengendalikan interaksi pengguna. Walau bagaimanapun, pada pemulaan aplikasi, adalah penting untuk memastikan bahawa utas aplikasi dijeda sehingga urutan pangkalan data menjadi sedia.
Kaedah pengundian seperti while (!dbthread.isReady()) {} adalah intensif sumber kerana ia berterusan penggunaan kitaran pemproses. Oleh itu, pendekatan yang lebih cekap ialah menggunakan CountDownLatch, yang membenarkan utas aplikasi menunggu syarat tertentu sebelum meneruskan.
Memulakan CountDownLatch dengan pembilang 1 (cth., CountDownLatch latch = CountDownLatch(1) baharu ;) mencipta selak yang akan menunggu untuk satu kiraan sebelum dilepaskan. Untuk berbuat demikian, utas aplikasi memanggil latch.await();, yang secara berkesan menjeda pelaksanaannya sehingga sama ada countDown() dipanggil atau tempoh tamat masa pilihan tamat.
Dalam urutan pangkalan data, apabila ia bersedia untuk teruskan, satu panggilan ke latch.countDown(); memberi isyarat bahawa syarat telah dipenuhi dan melepaskan utas permohonan menunggu. Penyegerakan ini memastikan kedua-dua utas beroperasi serentak sambil mengekalkan urutan operasi yang diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk Menyegerakkan Benang dalam Java Menggunakan CountDownLatch untuk Permulaan Pangkalan Data yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!