听起来您想用8个工人实现生产者/消费者模式。PythonQueue
为此提供了一个类,它是线程安全的。
每个工作人员都应调用get()
队列以检索任务。如果没有可用的任务,此调用将阻塞,从而导致工作人员空闲直到可用。然后,工作人员应执行任务,最后task_done()
在队列上进行调用。
您可以通过调用队列来将任务放入put()
队列。
在主线程中,您可以调用join()
队列以等待所有未完成的任务完成。
这种方法的好处是您无需创建和销毁线程,这很昂贵。工作线程将连续运行,但是当队列中没有任何任务时,将使用零cpu时间进入睡眠状态。