cc9542 2022-11-07 11:03 采纳率: 96.7%
浏览 70
已结题

pytohn 多进程 Process , pool , ProcessPoolExecutor 这三个库有什么区别?

from multiprocessing import Process #多进程
from multiprocessing import pool
from concurrent.futures import ProcessPoolExecutor #进程池

这三个 有什么区别?
from multiprocessing import Process #多进程
from concurrent.futures import ProcessPoolExecutor #进程池
这两个用过了 ,一个是多进程 一个是进程池 ,
from multiprocessing import pool 也是一样的吗?

from multiprocessing import Process #多进程

#python的 多进程和 多线程 使用方法是一样的,
#但是 开辟进程是非常耗费资源的,而且是需要时间的 循环次数少了效果不明显
#开辟进程的时间,取决于CPU, CPU什么时候开始就什么时候执行


def func():
    for i in range(10000):
        print("子进程", i)


if __name__ == '__main__':
    p = Process(target=func)
    p.start()
    for i in range(10000):
        print("主进程", i)

from concurrent.futures import ProcessPoolExecutor #进程池
#进程池
def fn(name):
    for i in range(1000):
        print(name,i)

if __name__=='__main__':
    #创建进程池
    with ProcessPoolExecutor(15) as t: #开15个进程
        for i in range(10):
            t.submit(fn, name=f"进程{i}")
    #等待进程池中的任务全部执行完毕,才继续执行(守护)
    print("全部完成")
  • 写回答

1条回答 默认 最新

  • 日出东南隅 2022-11-07 11:11
    关注

    打个比方吧process就是手动挡开车
    pool和processpoolexecutor就是自动挡开车不用操心细节

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月7日

悬赏问题

  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用