使用以下命令启动我的脚本:
cart()
然后当其中一个线程能够获得其他函数所需的变量时:
{{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()