Maison  >  Questions et réponses  >  le corps du texte

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

另外请问一下使用

queue.join()
queue.task_done()

while not workQueue.empty():
    pass

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

PHPzPHPz2764 Il y a quelques jours862

répondre à tous(1)je répondrai

  • 怪我咯

    怪我咯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.

    répondre
    0
  • Annulerrépondre