提交任务的两种方式:
同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结果后,再执行下一行代码,会导致任务是串行执行
![]()
from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
import time,random,os
def task(name,n):
print('%s%s is running' %(name,os.getpid()))
time.sleep(random.randint(1,3))
return n**2
if __name__ == '__main__':
# print(os.cpu_count()) #查看cpu的个数
p=ProcessPoolExecutor(4)
for i in range(10):
# 同步提交
res=p.submit(task,'进程pid: ',i).result()
print(res)
print("主")
结果:
进程pid: 10720 is running
0
进程pid: 10724 is running
1
进程pid: 5948 is running
4
进程pid: 2068 is running
9
进程pid: 10720 is running
16
进程pid: 10724 is running
25
进程pid: 5948 is running
36
进程pid: 2068 is running
49
进程pid: 10720 is running
64
进程pid: 10724 is running
81
主
同步提交