История изменений
Исправление
WitcherGeralt,
(текущая версия)
:
q.put("bar")
...
shared_queue.join()
Queue.join()
Blocks until all items in the queue have been gotten and processed.
Потоки в питоне работают не параллельно (но даже если бы было параллельно, в данном случае была бы возможность фейла всё равно), переключения происходят по таймеру или io, переключения после task_done во втором потоке не происходит и put выполняется раньше join в мейнтреде, следовательно, мейнтред ждёт ещё одного task_done.
Исправление
WitcherGeralt,
:
q.put("bar")
...
shared_queue.join()
Queue.join()
Blocks until all items in the queue have been gotten and processed.
Потоки в питоне работают не параллельно (но даже если бы было параллельно, в данном случае, была бы возможность фейла всё равно), переключения происходят по таймеру или io, переключения после task_done во втором потоке не происходит и put выполняется раньше join в мейнтреде, следовательно, мейнтред ждёт ещё одного task_done.
Исходная версия
WitcherGeralt,
:
q.put("bar")
...
shared_queue.join()
Queue.join()
Blocks until all items in the queue have been gotten and processed.
Потоки в питоне работают не параллельно, переключения происходят по таймеру или io, переключения после task_done во втором потоке не происходит и put выполняется раньше join в мейнтреде, следовательно, мейнтред ждёт ещё одного task_done.