本文共 660 字,大约阅读时间需要 2 分钟。
from concurrent.futures import ProcessPoolExecutorimport os,time'''def func(i): print("任务执行中 ... start" , os.getpid()) time.sleep(3) print("任务执行结束 ... end " , i) return i'''# (1) ProcessPoolExecutor 进程池的基本使用'''if __name__ == "__main__": lst = [] # cpu逻辑核心数 # print(os.cpu_count()) # (1) 创建进程池对象 """参数: 默认获取的是最大cpu逻辑核心数 8""" p = ProcessPoolExecutor(8) # (2) 异步提交任务 """默认如果一个进程短时间内可以完成更多的任务,进程池就不会使用更多的进程来完成,以节省资源""" for i in range(10): res = p.submit(func,i) lst.append(res) # (3) 获取当前进程任务中的返回值(result在获取任务的返回值时,有阻塞) # for i in lst: # print(i.result()) # (4) 等待所有子进程执行结束之后,在继续执行主进程内容(shutdown) p.shutdown() # <=> join print("<=======>") print(os.getpid())
转载地址:http://vwhzi.baihongyu.com/