进程

进程

使用进程可以充分利用cpu资源,是cpu分配资源的基本单元每一个进程都有自己的内存空间,
同样是无序进行,进程之间资源不共享,多用进程处理计算密集型人物,进程可以实现并行的操作
计算密集型任务的特点:是要进行大量的计算,小号CPU资源,比如计算圆周率,对视频进行高清解码等等,全靠CPU的运算能力。
计算密集型任务可以用多任务完成,但是任务越多,华在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型人物同时进行的数量应当等于CPU的核心数

计算密集型

from multiprocessing import Proces	python中使用multiprocessing创建进程(是跨平台一个库)
创建进程 myProcess = Process( target=执行函数,args=(参数,))
target:Optional[Callable] = (进程执行的函数)
name:Optional[str] = (进程名称)
args:lterable[Any] = (传参数)
kwargs:Mapping[Any,Any] = (传参数)
daemon:Optional[bool] = ) (设置前后台进程)
  1. start() 启动
  2. 堵塞进程(进程同步) join()
  3. 获取进程id:os.getpid() (获取当前进程id) os.getppid()(获取当前进程父id)
  4. 强行终止:terminate()
进程池方式一
from multiprocessing import Pool
p = Pool(进程数量)
不设置进程数量,则Pool的默认大小是CPU的核数
p.apply_async(执行函数, args=(参数,),callback=回调函数)异步
p.apply(执行函数,args=(参数,)callback=回调函数)同步
p.close() 关闭
p.join() 堵塞
对Pool对象调用join()方法会等待所有子进程执行完毕,调用join之前必须先调用close(),调用close()之后就不能继续添加新的Process了.
进程法师二
from concurrent.futures import ProcessPoolExecutor
p = ProcessPoolExecutor(max_workers=2)
max_workers=设置进程池中最大的进程数
result = ProcessPool.submit(执行函数,参数1,)
result.add_done_callback(回调函数)
p.shutdown(wait=True)
对ProcessPoolExecutor对象调用shutdown()方法会等待所有子线程执行完毕
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值