LINUX.ORG.RU

История изменений

Исправление 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.