相关疑难解决方法(0)

限制一次运行的最大线程数的正确方法?

我想创建一个运行多个轻量级线程的程序,但是将其自身限制为一个恒定的,预定义数量的并发运行任务,就像这样(但没有竞争条件的风险):

import threading

def f(arg):
    global running
    running += 1
    print("Spawned a thread. running=%s, arg=%s" % (running, arg))
    for i in range(100000):
        pass
    running -= 1
    print("Done")

running = 0
while True:
    if running < 8:
        arg = get_task()
        threading.Thread(target=f, args=[arg]).start()
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最安全/最快的方法是什么?

python multithreading python-multithreading

38
推荐指数
7
解决办法
6万
查看次数