'da bir engelleme, sıfır uzunluk kuyruğu oluşturmanın iyi bir yolu Java'da, depolama kapasitesine sahip olmayan bir kuyruk var, java.util.concurrent.SynchronousQueue
. Değerleri koymaya/almaya çalışan ipler, başka bir evre, sırasıyla bir değer elde etmeye/koymaya çalışana kadar her zaman engellenir.Python
Python'da bunu yapmanın iyi yolları nelerdir? Yani Değerleri bir veya daha fazla iş parçacığı kümesinden, her iki gruptaki bir iş parçacığına "ait" olan bir değere sahip olmayan bir veya daha fazla iş parçacığının başka bir kümesine geçirmenin bir yolunu istiyorum. Python'un queue.Queue
uzunluğunun 0
olması için izin vermez, maksimum kapasite için pozitif olmayan bir değer belirtmek sınırsız bir sıra oluşturur.
Sana sınırsız uzunluğu bu sıraları yapılmış ama daha verimli olabilir eğer davranışını değiştirir sanmıyorum: bunun anlamı ready_to_get.put() 'hiçbir zaman engelleyemedi (ancak queue.get() 'nin hala engelleyeceği gibi) ve aynı şekilde" queue.put() ", engellemedi, ancak siz bunu yapamazsınız. bir şey 'almaya' çalışıyordu. – Duncan
İki alıcının sıraya alındığı durumu denemek ve hesaplamak istedim, ancak yalnızca bir yazar mevcut. Ama bence haklısın, yine de kapatalım. –