进程池模块调用:from concurrent.futures import ProcessPoolExecutor
from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutorimport time,random,osdef task(name): print('%s%s is running'%(name,os.getpid())) time.sleep(random.randint(1,3))if __name__ == '__main__': # print(os.cpu_count()) #查看cpu的核数 p=ProcessPoolExecutor(4) #创建4个进程 #提交任务的俩种方式 #同步调用:提交完一个任务之后,在原地等待,等待任务完完整整的运行完毕拿到结果后,在执行下一行代码,会导致任务是串行执行的 #异步调用: 提交完一个任务之后,不在原地等待,结果???,而是直接执行下一行代码,会导致任务是并发执行的 for i in range(20): p.submit(task,"进pid:") print('主')
代码实现创建一个进程池,里面有四个进程在运行,每个进程运行完之后,就和接下一个任务继续执行,一个任务完之后不会结束,再重新创一个,耗费资源