位置: IT常识 - 正文

Python中的多进程是什么(python的多进程模块)

编辑:rootadmin

推荐整理分享Python中的多进程是什么(python的多进程模块),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python3 多进程,python 多进程,python的多进程效率低,python的多进程和多线程,python的多进程效率低,python的多进程效率低,python的多进程和多线程,python的多进程模块,内容如对您有帮助,希望把文章链接给更多的朋友!

多进程 multiprocessing

由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块。

multiprocessing模块提供了一个Process类来代表一个进程对象。

Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。

Python中的多进程是什么(python的多进程模块)

子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。

Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程:

importosprint('Process(%s)start...'%os.getpid())#OnlyworksonUnix/Linux/Mac:pid=os.fork()ifpid==0:print('Iamchildprocess(%s)andmyparentis%s.'%(os.getpid(),os.getppid()))else:print('I(%s)justcreatedachildprocess(%s).'%(os.getpid(),pid))

运行结果如下:

Process(69673)start...I(69673)justcreatedachildProcess(69674)Iamchildproces(69674)andmyparentis69673.

有了fork调用,一个进程在接到新任务时就可以复制出一个子进程来处理新任务,常见的Apache服务器就是由父进程监听端口,每当有新的http请求时,就fork出子进程来处理新的http请求。

但是这个fork在windows操作系统是没有的。于是出现了处理fork的通用模块,以保证在不同操作系统间的调用。

multiprocessing模块就是跨平台版本的多进程模块。

multiprocessing模块提供了一个Process类来代表一个进程对象,下面的例子演示了启动一个子进程并等待其结束:

#!/usr/bin/envpython#coding=utf-8frommultiprocessingimportProcessimportos"""子进程要执行的代码"""defrun_proc(name):print('Runchildprocess%s(%s)'%(name,os.getpid()))if__name__=='__main__':print('Parentprocess%s.'%os.getpid())p=Process(target=run_proc,args=('test_code',))print('Childprocesswillstart.')p.start()p.join()print('Childprocessend.')

执行结果如下:

$pythonforkbymutilprocessing.pyParentprocess70227.Childprocesswillstart.Runchildprocesstest_code(70228)Childprocessend.

创建子进程时,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动,这样创建进程比fork()还要简单。

本文链接地址:https://www.jiuchutong.com/zhishi/310227.html 转载请保留说明!

上一篇:python如何对多个CSV文件进行读取(python replace 多个)

下一篇:使用Element时默认勾选表格toggleRowSelection方式(element remove)

  • 存量房地产转让土地增值税
  • 对公账户要收手续费吗
  • 2019年地方各项基金费申报表填写错误要交滞纳金吗
  • 股东在两个公司上班好吗
  • 非居民企业所得税税率10%
  • 私募过来的资金怎么做会计分录?
  • 申报个人所得税的详细流程
  • 加油充值卡有优惠吗
  • 文化事业建设税怎么申报
  • 企业购买商品
  • 广告公司怎样
  • 小规模纳税人附加税会计分录
  • 小规模开税票怎么开
  • 对方开增值税普通发票,我方需要做什么呢?
  • 减少其他应付款冲费用做以前年度损益调整如何做分录
  • 会计核算中利润包括哪些
  • 商场收取商户违约金上什么税?
  • 净资产怎么算的 视频
  • 客户分批付款怎么说
  • 包装物租金怎么算
  • 加装固态后如何分盘
  • 电脑win10点开始没反应
  • 为职工缴纳的意外保险费用
  • 企业向个人的借款合同
  • 企业增值税征收范围包括
  • 如何保护word文件不被他人修改
  • 怎么用winpe安装系统
  • cortana小娜可以卸载吗
  • 关于已开发票收到部分款项风险温馨提示
  • 融资租赁会计处理小企业会计准则
  • 免税的农业企业可以抵扣专票吗
  • 表单校验html5
  • 食堂现金管理办法
  • 如何计提加计抵减额分录
  • 购入电脑可以入成本里吗
  • 月末账务处理流程分录例题
  • vuejs props
  • 珀斯临近什么洋
  • php字符串的三种定义方式
  • node.js什么意思
  • 领用包装物会计处理
  • dns域名解析两种方式
  • 用友t6成本核算
  • 怎样合理的运用网络
  • 固定资产折旧如何进行会计处理
  • 帝国cms专题
  • 摄影属于哪种服务业
  • 短期股票投资售出
  • php出现错误代码怎么办
  • 金税四期上线后如何查虚开
  • 实际已缴纳所得税额大于初始化金额
  • 应付工资是应付账款吗
  • 开专票需要什么条件呢怎么开
  • 如何冲其他应付款发票
  • 付款后没有发票怎么办
  • 发生的销货退回费用应计入
  • Windows Server 2003网络负载均衡如何实现
  • 苹果mac系统怎么截屏快捷键
  • 方正电脑升级
  • os x10.8.5
  • 如何隐藏应用软件
  • centos无法挂载位置
  • windows8使用技巧
  • window八
  • linux服务端
  • linux使用ssh命令
  • 防火墙ddos攻击防范
  • cocos2dx schedule
  • node性能优化
  • shell基础教程
  • android基础知识大全
  • Android Study Day 3 --Android File Read And Write
  • 使用jsonp跨域,服务端如何改
  • js 实现一个new
  • javascript基础书
  • 国家税务总局通知公告
  • 消费税纳税申报流程图
  • 2021年江苏城镇医保网上缴费
  • 吉林省电子税务局官网
  • 税务管理工作检讨书范文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设