Python中的多线程:处理与生产者消费者类似

时间:2014-11-05 16:26:30

标签: multithreading python-2.7 producer-consumer

在Python 2.7中,如何知道线程何时完成,以便可以维持运行线程的常量缓冲区,至少在所有处理完成之前?

我正在尝试保留线程缓冲区(类似于生产者/消费者问题,但将线程本身视为缓冲区中的资源,并将完成的线程视为可供使用的资源),当线程完成时,在缓冲区中放入一个新线程开始,我似乎无法弄清楚如何使用线程模块和队列来完成。

1 个答案:

答案 0 :(得分:1)

更常见的是启动少量线程,这些线程永远存在,而不是一个接一个地启动大量线程。尝试编写这样的线程代码:

def run(q):
    # Threads run this function
    # q is a Queue
    while True:
        work = q.get()
        process(work)
        q.task_done()