python新手,試圖理解多線程。下面是一個來自python文檔的例子,關於Queue基本python多線程問題
對於我生活中的這些,我不明白這個例子是如何工作的。在worker()函數中,有一個無限循環。工人如何知道什麼時候離開循環?似乎沒有破裂的情況。
到底什麼是聯結?我不應該加入線程嗎?
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
另外一個問題,什麼時候應該使用多線程,何時應該使用多處理?
啊我現在明白了。有什麼網站/資源可以閱讀這些微妙之處嗎?文件真的不是它看起來最好的地方。 – JZee 2012-07-23 21:19:17
除了主線程的末尾殺死子線程之外,所有這些信息都直接從您鏈接自己的'Queue'文檔頁面。 – 2012-07-23 21:20:16
感謝您的回答。我想我會接受它,因爲它回答了我的主要問題。 – JZee 2012-07-24 17:24:45