首頁  >  問答  >  主體

java - python中queue的task_done和join起什么作用?

另外请问一下使用

queue.join()
queue.task_done()

while not workQueue.empty():
    pass

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

PHPzPHPz2764 天前865

全部回覆(1)我來回復

  • 怪我咯

    怪我咯2017-04-18 09:59:50

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

    回覆
    0
  • 取消回覆