我有一个python函数,可以执行类似这样的操作(非常粗糙的伪代码):
while True:
set_up_some_variables()
start_4_threads()
continue_computing()
“continue_computing”任务取决于强线程任务的输出。如何确保只在线程全部完成后才执行?
我考虑过使用锁(即在线程开始之前,获取4个锁并在线程完成后释放) - 但这不允许我对线程数量保持灵活性。此外,它似乎不是一个优雅的解决方案。
答案 0 :(得分:2)
thread.join()
在继续之前等待所有线程到达程序中的某个点。
def foo(id, var):
print(id, var)
# Set up some variables
vars = ['a', 'b', 'c', 'd']
# Start threads
for id in range(4):
thread.start_new_thread(foo, (id, vars[id]))
# Wait for all threads to run foo before continuing
thread.join()
print("All threads complete!")