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

另外请问一下使用

queue.join()
queue.task_done()

while not workQueue.empty():
    pass

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

PHPz
PHPz

学习是最好的投资!

모든 응답(1)
刘奇

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿