提交任务的两种方式:
  同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结果后,再执行下一行代码,会导致任务是串行执行
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
同步提交

相关文章: