Очередь.Очередь против. коллекции.dequePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Очередь.Очередь против. коллекции.deque

Сообщение Anonymous »

Мне нужна очередь, в которую несколько потоков могут помещать данные, и несколько потоков могут читать из нее.
В Python есть как минимум два класса очередей: очередь.Queue и коллекции. .deque, причем первый, по-видимому, использует второй внутри себя. В документации оба утверждают, что они потокобезопасны.
Однако в документации Queue также указано:

< р>

Код: Выделить всё

collections.deque
 — альтернативная
реализация неограниченных очередей
с помощью быстрого атомарного добавления() и

Код: Выделить всё

popleft()
операции, которые
не требуют блокировки
, а также поддерживают индексацию.

Что, наверное, я и делаю не совсем понимаю: означает ли это, что deque все-таки не является полностью потокобезопасным?
Если да, то я, возможно, не до конца понимаю разницу между этими двумя классами. Я вижу, что Queue добавляет функцию блокировки. С другой стороны, он теряет некоторые функции deque, такие как поддержка оператора in.
Осуществляет прямой доступ к внутреннему объекту deque

Код: Выделить всё

x in Queue().queue
поточно-ориентированный?
Кроме того, почему Queue использует мьютекс для своих операций, когда deque является потоко-ориентированным уже в безопасности?

Подробнее здесь: https://stackoverflow.com/questions/717 ... ions-deque
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»