java - python中queue的task_done和join起什么作用?
PHPz
PHPz 2017-04-18 09:57:50
0
1
883

另外请问一下使用

queue.join()
queue.task_done()

while not workQueue.empty():
    pass

这两种方式来判断队列中是否还有任务的机制有区别吗?哪种更好呢?

PHPz
PHPz

学习是最好的投资!

Antworte allen(1)
刘奇

具体要看你的设计和使用场景。
queue.join会一直阻塞,直到队列中所有的message都被get出来并且调用task_done才会返回。通常用在等待所有的任务都处理完了,然后退出进程。
empty会立马返回,用你的while循环检查时,如果队列为空线程会一直用死循环。循环等待会很耗CPU。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage