>  Q&A  >  본문

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

另外请问一下使用

queue.join()
queue.task_done()

while not workQueue.empty():
    pass

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

PHPzPHPz2764일 전863

모든 응답(1)나는 대답할 것이다

  • 怪我咯

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

    디자인 및 사용 시나리오에 따라 다릅니다.
    queue.join은 대기열의 모든 메시지가 검색되고 반환되기 전에 task_done이 호출될 때까지 차단됩니다. 일반적으로 모든 작업이 처리될 때까지 기다린 다음 프로세스를 종료하는 데 사용됩니다.
    Empty는 while 루프로 확인할 때 즉시 반환됩니다. 대기열이 비어 있으면 스레드는 계속해서 끝없이 루프됩니다. 루프에서 기다리는 것은 많은 CPU를 소비합니다.

    회신하다
    0
  • 취소회신하다