Python等待所有线程任务完成

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python等待所有线程任务完成相关的知识,希望对你有一定的参考价值。

import threading
import time
import random


def takeSleep(id, name):
    print(name+'-'+id+':线程开始运行...')
    time.sleep(random.randint(0, 3))
    print(name+'-'+id+':线程任务结束')


print('主程序开始运行...')
threads = []
for i in range(0, 5):
    t = threading.Thread(target=takeSleep, args=(str(i), 'zhangphil'))
    threads.append(t)
    t.start()

print('主程序运行中...')

#等待所有线程任务结束。
for t in threads:
    t.join()

print("所有线程任务完成")

 

运行输出:

主程序开始运行...
zhangphil-0:线程开始运行...
zhangphil-1:线程开始运行...
zhangphil-0:线程任务结束zhangphil-2:线程开始运行...
zhangphil-3:线程开始运行...

zhangphil-1:线程任务结束
zhangphil-4:线程开始运行...主程序运行中...

zhangphil-4:线程任务结束
zhangphil-2:线程任务结束
zhangphil-3:线程任务结束
所有线程任务完成

 

以上是关于Python等待所有线程任务完成的主要内容,如果未能解决你的问题,请参考以下文章

让线程在开始下一组任务之前等待所有任务完成

如何等待java线程池中所有任务完成

python网络编程04 异步与同步编程事件驱动

《Java并发编程实战》----线程池的使用

面试官:如何让主线程等待所有的子线程结束之后再执行?我懵了

从不同线程将值添加到全局集中并等待所有线程完成