线程池的作用是:一次性开辟一些线程,用户直接给线程池分配任务。线程的任务调度交给线程池来完成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
# 进程的写法和线程一样。这里就不做展示了。

def func(name):
for i in range(1000):
print(name, i)


if __name__ == '__main__':
# 创建线程池(含50个线程)
with ThreadPoolExecutor(50) as t:
# 给线程池添加200个任务
for i in range(200):
t.submit(func, name=f"任务{i}")

# 等待线程池中的任务完成才会执行下面的代码(守护)
print('任务完成')