如何在python中强制线程加入/停止


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

多线程时如何关闭线程?

最新更新