Всем привет! Нужна помощь с многопоточной программой на Python. Пытаюсь использовать threading и queue, но что-то идет не так. Создаю потоки, кидаю задачи в очередь, но они работают не так, как я ожидал. Кому не лень, гляньте на мой пример кода и подскажите, что я упускаю:
Программный код:
import threading
import queue
def worker(q):
while True:
task = q.get()
if task is None:
break
print("Работаем над:", task)
q.task_done()
task_queue = queue.Queue()
threads = []
for i in range(4):
t = threading.Thread(target=worker, args=(task_queue,))
t.start()
threads.append(t)
for task in range(10):
task_queue.put(task)
task_queue.join()
for i in range(4):
task_queue.put(None)
for t in threads:
t.join()
Друзья, в чем может быть дело? Почему мой код странно себя ведет?


