Есть вопрос Зачем нам нужен gevent.queue? , который спрашивает о необходимости gevent.queue.Queue
в том, что нет параллелизма, а есть только параллелизм с gevent
.Правомерно, ответ объясняет:
[...] вы можете убедиться, что ряд операторов выполняется атомарно [...]
Таким образом, каждый метод долженбыть атомарным, что объясняет, почему нам нужен объект очереди вместо «обычного» списка, например.Однако, согласно Python docs https://docs.python.org/3/library/queue.html объект queue.Queue
уже имеет такие функции безопасности:
Это особенно полезно в многопоточном программировании, когда необходимо безопасно обмениваться информацией между несколькими потоками.Класс Queue в этом модуле реализует всю необходимую семантику блокировки.
Так почему же существует gevent.queue.Queue
, когда queue.Queue
уже существует?Требуются ли дополнительные функции безопасности или это вопрос производительности?