杀死所有线程python

时间:2018-04-26 00:38:23

标签: python-3.x

使用以下命令启动我的脚本:

cart()

然后当其中一个线程能够获得其他函数所需的变量时:

{{1}}

有没有办法让所有线程都在{{1}}上启动,然后在{{1}}上启动新线程?

1 个答案:

答案 0 :(得分:0)

如果你的worker函数在循环中工作,它可以使用像Event这样的公共资源来指示工作完成时它应该返回。这是一个例子

import threading
import time
import random

def getSizes(done_event):
    while not done_event.is_set():
        print("get size")
        if random.randint(0, 20) == 10:
            print("got size")
            done_event.set()
            do_cart()
        else:
            time.sleep(random.random())
    print("sizes done")

def do_getSizes():
    event = threading.Event()
    threads = []
    for i in range(5):
        t = threading.Thread(target=getSizes, args=(event,))
        t.start()
        threads.append(t)
    for t in threads:
        t.join()

def cart():
    print("I haz the cartz")

def do_cart():
    time.sleep(1)
    threads = []
    for i in range(5):
        t = threading.Thread(target=cart)
        t.start()
        threads.append(t)
    for t in threads:
        t.join()



do_getSizes()