Maison > Questions et réponses > le corps du texte
另外请问一下使用
queue.join()
queue.task_done()
和
while not workQueue.empty():
pass
这两种方式来判断队列中是否还有任务的机制有区别吗?哪种更好呢?
怪我咯2017-04-18 09:59:50
Cela dépend de votre conception et de vos scénarios d'utilisation.
queue.join bloquera jusqu'à ce que tous les messages de la file d'attente soient récupérés et que task_done soit appelé avant de revenir. Habituellement utilisé pour attendre que toutes les tâches soient traitées, puis quitter le processus.
Vide reviendra immédiatement. Lors de la vérification avec votre boucle while, si la file d'attente est vide, le thread continuera à boucler sans fin. Attendre en boucle consomme beaucoup de CPU.