Sıra.Sıra vs derlemeleri.deque
Şeyleri içine koyabilirsiniz bir sıra istiyorum, ve birden çok iş parçacığı okuyabilirsiniz.
Python en az iki sıra sınıflar, Sıra var.Sıra ve koleksiyonları.deque, eski görünüşte DAHİLİ olarak ikinci kullanarak. Hem güvenli iplik belgelerinde iddia.
Ancak, Sıra devlet dokümanlar da:
koleksiyonları.deque bir alternatiftir sınırsız sıralar uygulanması hızlı atom() ekleme ve () popleft işlemlerini kilitleme gerektirir.
Oldukça anlamiyorum bilmiyorum ki: bu deque tamamen güvenli iplik-değil mi?
Eğer öyle ise, tam olarak iki sınıf arasındaki farkı anlamıyor olabilirim. Sıra engelleme işlevselliği ekler görebiliyorum. Öte yandan, operatör desteği gibi bazı deque özelliklerini kaybeder.
Doğrudan iç deque nesnesi erişim
x Sıra().deque
evresel?
Ayrıca, neden Sıra deque-güvenli iş parçacığı zaten ne zaman bu işlemler için bir zaman uyumu işe yarıyor?
CEVAP
Queue.Queue
collections.deque
farklı amaçlara hizmet. Sıra.Kuyruk collections.deque
sadece bir datastructure olarak tasarlanmıştır ise farklı iş parçacıkları sıraya alınan iletileri/verileri kullanarak iletişim kurmak için izin vermek için tasarlanmıştır. Queue.Queue
put_nowait()
, get_nowait()
collections.deque
gelmez ise join()
gibi yöntemleri vardır. Queue.Queue
in
operatör gibilere yoksun neden olan bir toplama olarak kullanılmak için uygun değildir.
Kaynar Aşağı bu: eğer birden fazla iş parçacığı ve onlarla iletişim kurabilmek gerek kalmadan kilitler, aradığınız Queue.Queue
; eğer sadece bir sıra veya çift uçlu kuyruk gibi bir datastructure, collections.deque
.
Son olarak, Queue.Queue
iç deque erişim maniple ateşle oynamak - Eğer gerçekten bunu yapmak istemiyorum.
Hangi push_rear bir sıra uygulamak () ...
UnicodeEncodeError: 'ascıı' ...
Sıra hiçbir öğe içeriyor?...
Dağıtılmış sıra numarası nesil?...
Nasıl bir sıra iki yığınları kullanara...