首页  >  问答  >  正文

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

另外请问一下使用

queue.join()
queue.task_done()

while not workQueue.empty():
    pass

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

PHPzPHPz2715 天前819

全部回复(1)我来回复

  • 怪我咯

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

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

    回复
    0
  • 取消回复