Pertanyaan threading.Condition vs threading.Event


Saya belum menemukan penjelasan yang jelas tentang perbedaan antara Condition dan Event kelas dalam threading modul. Apakah ada kasus penggunaan yang jelas di mana orang akan lebih bermanfaat daripada yang lain? Semua contoh yang dapat saya temukan menggunakan model produsen-konsumen sebagai contoh, di mana queue.Queue akan menjadi solusi yang lebih mudah.


32
2017-09-15 00:29


asal


Jawaban:


Sederhananya, Anda menggunakan Kondisi ketika untaian tertarik untuk menunggu sesuatu menjadi kenyataan, dan setelah itu benar, untuk memiliki akses eksklusif ke beberapa sumber bersama.

Sedangkan Anda menggunakan Peristiwa ketika untaian tertarik untuk menunggu sesuatu menjadi kenyataan.

Intinya, Condition adalah Peristiwa + Kunci yang diabstraksikan, tetapi akan menjadi lebih menarik ketika Anda mempertimbangkan bahwa Anda dapat memiliki beberapa Kondisi berbeda di atas kunci dasar yang sama. Dengan demikian Anda bisa memiliki Kondisi yang berbeda yang menggambarkan keadaan sumber daya yang mendasari yang berarti Anda dapat membangunkan pekerja yang hanya tertarik pada keadaan tertentu dari sumber daya bersama.


39
2017-09-15 01:11