Почему существует `gevent.queue.Queue`, если` queue.Queue` уже существует и является поточно-ориентированным? - PullRequest
0 голосов
/ 26 июня 2019

Есть вопрос Зачем нам нужен gevent.queue? , который спрашивает о необходимости gevent.queue.Queue в том, что нет параллелизма, а есть только параллелизм с gevent.Правомерно, ответ объясняет:

[...] вы можете убедиться, что ряд операторов выполняется атомарно [...]

Таким образом, каждый метод долженбыть атомарным, что объясняет, почему нам нужен объект очереди вместо «обычного» списка, например.Однако, согласно Python docs https://docs.python.org/3/library/queue.html объект queue.Queue уже имеет такие функции безопасности:

Это особенно полезно в многопоточном программировании, когда необходимо безопасно обмениваться информацией между несколькими потоками.Класс Queue в этом модуле реализует всю необходимую семантику блокировки.

Так почему же существует gevent.queue.Queue, когда queue.Queue уже существует?Требуются ли дополнительные функции безопасности или это вопрос производительности?

...