擅长:python、mysql、java
<p>您只是不能清除队列,因为每次放置也会添加未完成的任务成员。
join方法取决于此值。
所有的任务也需要通知。</p>
<pre><code>q.mutex.acquire()
q.queue.clear()
q.all_tasks_done.notify_all()
q.unfinished_tasks = 0
q.mutex.release()
</code></pre>
<p>或者以体面的方式,使用get和task完成对安全地清除任务。</p>
<pre><code>while not q.empty():
try:
q.get(False)
except Empty:
continue
q.task_done()
</code></pre>
<p>或者创建一个新队列并删除旧队列。</p>