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

另外请问一下使用

queue.join()
queue.task_done()

while not workQueue.empty():
    pass

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

PHPz
PHPz

学习是最好的投资!

全部回覆(1)
刘奇

具體要看你的設計和使用場景。
queue.join會一直阻塞,直到佇列中所有的message都被get出來並且呼叫task_done才會回傳。通常用在等待所有的任務都處理完了,然後退出進程。
empty會立刻返回,用你的while循環檢查時,如果隊列為空線程會一直用死循環。循環等待會很耗CPU。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板