from time import perf_counter, sleep
import threading
def foo(bar):
some_func(bar) # takes longer with higher values of bar
if __name__ == "__main__":
threads = []
for i in range(15):
threads.append(threading.Thread(target=func, args=(i,)))
for i in range(15):
threads[i].start()
for i in range(15):
threads[i].join()
if sum_condition: # condition is from user input, so no way of knowing when it'll be true
# kill all threads/join all threads
pass
当条件满足时,我不知道如何连接所有线程,并且函数some_func
来自库,所以我无法退出它。有什么方法可以连接所有这些线程/停止函数以便线程返回吗?
from time import perf_counter, sleep
import threading
# change/add code here
def foo(bar, running):
while running.is_set():
# change/add code here
some_func(bar) # takes longer with higher values of bar
if __name__ == "__main__":
threads = []
# change/add code here
running = threading.Event()
running.set()
# change/add code here
for i in range(15):
threads.append(threading.Thread(target=func, args=(i,)))
for i in range(15):
threads[i].start()
for i in range(15):
# change/add code here
if sum_condition: # condition is from user input, so no way of knowing when it'll be true
# kill all threads/join all threads
running.clear()
threads[i].join()
# change/add code here
多线程时如何关闭线程?