刚接触 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
还有一个问题,什么时候应该使用多线程,什么时候应该使用多处理?