在使用最大线程时进行线程池阻塞?

时间:2013-06-06 12:44:35

标签: python threadpool

我正在尝试创建一个线程池,在将另一个线程添加到线程池之前,会在达到最大线程数时阻塞。

import thread_pool
import time

def slow_greeting(msg):
    time.sleep(5)
    print("Hello there {}".format(msg))

def main():
    tp = thread_pool.ThreadPool(3)
    while True:
        print("Top of the loop")
        tp.add_task(slow_greeting, 'a')
        tp.add_task(slow_greeting, 'b')
        tp.add_task(slow_greeting, 'c')

        # Should block here, waiting for a free thread
        tp.add_task(slow_greeting, 'd')
        tp.add_task(slow_greeting, 'e')

然而,当它运行时,“循环顶部”会一遍又一遍地打印,而slow_greeting会一直打印。

在尝试添加任务时,如何创建一个线程池块,直到该任务至少有一个可用线程运行?

0 个答案:

没有答案