очередь многопроцессорной обработки python: независима ли установка от получения?

Является ли putting объектом в многопроцессорной очереди< /strong> независимый от getting объект от него?

Другими словами, будет ли putting объект блокировать процесс P1, если другой процесс P2 getting от него?

Обновление: я предполагаю бесконечную очередь.


person jldupont    schedule 16.02.2010    source источник


Ответы (1)


Мое прочтение исходного кода состоит в том, что get получает блокировку чтения, которая не зависит от блокировки (называемой _notempty), полученной put. Если я правильно понимаю, одновременные get могут блокировать друг друга, а одновременные put могут блокировать друг друга (по модулю использования вами параметра block), но get и put не блокируют друг друга.

person Jonathan Feinberg    schedule 16.02.2010
comment
re: источник чтения: я обычно так иду, но в этом случае я чувствовал себя ленивым. В любом случае, после прочтения вашего ответа я тоже прочитал исходный код: сторона записи отделена от стороны чтения через a Pipe. - person jldupont; 16.02.2010
comment
Ага, я вижу, что мой комментарий был (по понятным причинам) воспринят неправильно. Я имел в виду только то, что многопроцессорный материал — это чистый python, доступный со всеми другими стандартными модулями. Я не имел в виду это как RTFM N00B!. В любом случае, я рад, что мой ответ был полезен. Я надеюсь, что это правильно. :) - person Jonathan Feinberg; 16.02.2010