私はPythonを初めて使用します(私はPHPから来ました)、チュートリアルを読んで数日間試してみましたが、このキューの例を理解できません(http://docs.python.org/2/library /queue.html )
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
q = Queue()
for i in range(num_worker_threads):
t = Thread(target=worker)
t.daemon = True
t.start()
for item in source():
q.put(item)
q.join() # block until all tasks are done
私が理解していないのは、ワーカースレッドがどのように完了して存在するかです。アイテムが利用可能になるまで q.get() ブロックを読んだので、すべてのアイテムが処理され、キューに何も残っていない場合、q.get() が永久にブロックされないのはなぜですか?