Rumah > Java > javaTutorial > Bagaimana untuk Membuat Benang Java Menunggu Output daripada Benang Lain?

Bagaimana untuk Membuat Benang Java Menunggu Output daripada Benang Lain?

Mary-Kate Olsen
Lepaskan: 2024-11-11 17:59:02
asal
422 orang telah melayarinya

How to Make a Java Thread Wait for Output from Another Thread?

Menunggu Output Benang dalam Java: Dilema Penyegerakan

Dalam aplikasi Java berbilang benang, menyelaraskan pelaksanaan berbilang benang adalah penting untuk memastikan integriti data dan responsif aplikasi. Apabila satu benang bergantung pada output yang lain, mekanisme penyegerakan akan dimainkan. Satu senario sedemikian diterangkan dalam soalan berikut:

Soalan:

Bagaimanakah benang Java (selepas ini dirujuk sebagai "benang apl") dibuat menunggu sehingga benang lain ("benang db") telah menyelesaikan operasi dan bersedia untuk memberikan output? Urutan db mesti kekal aktif sepanjang hayat aplikasi dan kedua-dua utas mesti dilaksanakan serentak. Menyekat urutan apl sehingga urutan db sedia ialah penyelesaian yang boleh diterima.

Jawapan:

Kunci untuk menyelesaikan masalah penyegerakan ini terletak pada penggunaan CountDownLatch. CountDownLatch ialah binaan penyegerakan yang membenarkan berbilang benang menunggu sehingga kiraan tertentu dicapai sebelum meneruskan. Dalam kes ini:

// Create a CountDownLatch with a counter of 1
CountDownLatch latch = new CountDownLatch(1);
Salin selepas log masuk

Dalam urutan apl di mana menunggu diperlukan:

// The app thread waits for the db thread to complete
latch.await();
Salin selepas log masuk

Dalam urutan db, setelah operasi selesai dan output sedia:

// The db thread signals the app thread to proceed
latch.countDown();
Salin selepas log masuk

Mekanisme ini memastikan bahawa urutan apl tidak akan diteruskan sehingga urutan db selesai operasinya. Urutan apl akan menunggu sehingga kiraan dalam CountDownLatch mencecah sifar, membenarkan kedua-dua utas dilaksanakan serentak setelah urutan db sedia. Pendekatan ini menyediakan penyelesaian yang bersih dan cekap kepada penyegerakan benang, memelihara kedua-dua pelaksanaan benang dan integriti data.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Benang Java Menunggu Output daripada Benang Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan