【问题标题】:Multithreading in Python: Processing Similar to Producer ConsumerPython中的多线程:类似于生产者消费者的处理
【发布时间】:2014-11-05 16:26:30
【问题描述】:
在 Python 2.7 中,如何知道一个线程何时完成,以便至少在所有处理完成之前保持一个正在运行的线程的恒定缓冲区?
我试图保留一个线程缓冲区(类似于生产者/消费者问题,但将线程本身视为缓冲区中的资源,并将完成的线程视为准备好使用的资源),当线程完成时,在缓冲区中放置一个新线程以启动,我似乎无法弄清楚如何使用线程模块和队列来完成。
【问题讨论】:
标签:
multithreading
python-2.7
producer-consumer
【解决方案1】:
启动少量永久存在的线程比一个接一个地启动大量线程更为常见。尝试像这样编写你的线程代码:
def run(q):
# Threads run this function
# q is a Queue
while True:
work = q.get()
process(work)
q.task_done()