84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
另外请问一下使用
queue.join() queue.task_done()
和
while not workQueue.empty(): pass
这两种方式来判断队列中是否还有任务的机制有区别吗?哪种更好呢?
学习是最好的投资!
それはあなたのデザインと使用シナリオによって異なります。 queue.join は、キュー内のすべてのメッセージが取得され、戻る前に task_done が呼び出されるまでブロックされます。通常は、すべてのタスクが処理されるのを待ってからプロセスを終了するために使用されます。 Empty は、while ループで確認するとすぐに戻ります。キューが空の場合、スレッドは無限にループし続けます。ループで待機すると、大量の CPU が消費されます。
それはあなたのデザインと使用シナリオによって異なります。
queue.join は、キュー内のすべてのメッセージが取得され、戻る前に task_done が呼び出されるまでブロックされます。通常は、すべてのタスクが処理されるのを待ってからプロセスを終了するために使用されます。
Empty は、while ループで確認するとすぐに戻ります。キューが空の場合、スレッドは無限にループし続けます。ループで待機すると、大量の CPU が消費されます。