import multiprocessing
import time
# 也可以使用concurrent.future中的ProcesPoolExcutor来实现进程池
def process_func(times):
time.sleep(times)
print(times)
return times
if __name__ == "__main__":
if 0:
pool = multiprocessing.Pool(multiprocessing.cpu_count())
res = pool.apply_async(process_func, args=(2,))
pool.close() # 关闭进程池
pool.join() # 阻塞主进程
print("result:{}".format(res.get()))
if 1:
# 多进程为了运行更高效,cpu个数应该最大,multiprocessing.cpu_count()获取cpu个数
pool = multiprocessing.Pool(multiprocessing.cpu_count())
# 类似线程中map的imap方法,结果返回与列表中顺序一致
# imap_unordered方法是根据函数返回顺序一致
for res in pool.imap(process_func, [3,2,4]):
print("result:{}".format(res))
python进程池使用
最新推荐文章于 2024-07-17 20:47:38 发布