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