游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

python中的进程实战部分

  如果想了解进程可以先看一下这一篇python中的进程理论部分multiprocessing模块介绍
  python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os。cpucount()查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。
  multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。
  multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。
  需要再次强调的一点是:与线程不同,进程没有任何共享状态,进程修改的数据,改动仅限于该进程内。Process类的介绍
  创建进程的类:Process(〔group〔,target〔,name〔,args〔,kwargs〕〕〕〕〕),由该类实例化得到的对象,表示一个子进程中的任务(尚未启动)强调:1。需要使用关键字的方式来指定参数2。args指定的为传给target函数的位置参数,是一个元组形式,必须有逗号
  参数介绍:
  group参数未使用,值始终为None
  target表示调用对象,即子进程要执行的任务
  args表示调用对象的位置参数元组,args(1,2,tiga,)
  kwargs表示调用对象的字典,kwargs{name:tiga,age:18}
  name为子进程的名称
  方法介绍:
  p。start():启动进程,并调用该子进程中的p。run()
  p。run():进程启动时运行的方法,正是它去调用target指定的函数,我们自定义类的类中一定要实现该方法
  p。terminate():强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程,使用该方法需要特别小心这种情况。如果p还保存了一个锁那么也将不会被释放,进而导致死锁
  p。isalive():如果p仍然运行,返回True
  p。join(〔timeout〕):主线程等待p终止(强调:是主线程处于等的状态,而p是处于运行的状态)。timeout是可选的超时时间,需要强调的是,p。join只能join住start开启的进程,而不能join住run开启的进程
  属性介绍:p。daemon:默认值为False,如果设为True,代表p为后台运行的守护进程,当p的父进程终止时,p也随之终止,并且设定为True后,p不能创建自己的新进程,必须在p。start()之前设置p。name:进程的名称p。pid:进程的pidp。exitcode:进程在运行时为None、如果为N,表示被信号N结束(了解即可)p。authkey:进程的身份验证键,默认是由os。urandom()随机生成的32字符的字符串。这个键的用途是为涉及网络连接的底层进程间通信提供安全性,这类连接只有在具有相同的身份验证键时才能成功(了解即可)Process类的使用
  注意:在windows中Process()必须放到ifnamemain:下inceWindowshasnofork,themultiprocessingmodulestartsanewPythonprocessandimportsthecallingmodule。IfProcess()getscalleduponimport,thenthissetsoffaninfinitesuccessionofnewprocesses(oruntilyourmachinerunsoutofresources)。ThisisthereasonforhidingcallstoProcess()insideifnamemainsincestatementsinsidethisifstatementwillnotgetcalleduponimport。由于Windows没有fork,多处理模块启动一个新的Python进程并导入调用模块。如果在导入时调用Process(),那么这将启动无限继承的新进程(或直到机器耗尽资源)。这是隐藏对Process()内部调用的原,使用ifnamemain,这个if语句中的语句将不会在导入时被调用。
  创建并开启子进程的两种方式
  方法一:importtimeimportrandomfrommultiprocessingimportProcessdefpiao(name):print(spiaoingname)time。sleep(random。randrange(1,5))print(spiaoendname)p1Process(targetpiao,args(egon,))必须加,号p2Process(targetpiao,args(alex,))p3Process(targetpiao,args(wupeqi,))p4Process(targetpiao,args(yuanhao,))p1。start()p2。start()p3。start()p4。start()print(主线程)
  方法二:开进程的方法二:importtimeimportrandomfrommultiprocessingimportProcessclassPiao(Process):definit(self,name):super()。init()self。namenamedefrun(self):print(spiaoingself。name)time。sleep(random。randrange(1,5))print(spiaoendself。name)p1Piao(xm)p2Piao(xs)p3Piao(xj)p4Piao(xh)p1。start()start会自动调用runp2。start()p3。start()p4。start()print(主线程)Process对象的join方法
  join:主进程等,等待子进程结束frommultiprocessingimportProcessimporttimeimportrandomclassPiao(Process):definit(self,name):self。namenamesuper()。init()defrun(self):print(sispiaoingself。name)time。sleep(random。randrange(1,3))print(sispiaoendself。name)pPiao(tiga)p。start()p。join(0。0001)等待p停止,等0。0001秒就不再等了print(开始)
  有了join,程序不就是串行了吗???frommultiprocessingimportProcessimporttimeimportrandomdefpiao(name):print(sispiaoingname)time。sleep(random。randint(1,3))print(sispiaoendname)p1Process(targetpiao,args(xm,))p2Process(targetpiao,args(xh,))p3Process(targetpiao,args(xj,))p4Process(targetpiao,args(xw,))p1。start()p2。start()p3。start()p4。start()有的同学会有疑问:既然join是等待进程结束,那么我像下面这样写,进程不就又变成串行的了吗?当然不是了,必须明确:p。join()是让谁等?很明显p。join()是让主线程等待p的结束,卡住的是主线程而绝非进程p,详细解析如下:进程只要start就会在开始运行了,所以p1p4。start()时,系统中已经有四个并发的进程了而我们p1。join()是在等p1结束,没错p1只要不结束主线程就会一直卡在原地,这也是问题的关键join是让主线程等,而p1p4仍然是并发执行的,p1。join的时候,其余p2,p3,p4仍然在运行,等p1。join结束,可能p2,p3,p4早已经结束了,这样p2。join,p3。join。p4。join直接通过检测,无需等待所以4个join花费的总时间仍然是耗费时间最长的那个进程运行的时间p1。join()p2。join()p3。join()p4。join()print(主线程)上述启动进程与join进程可以简写为pl〔p1,p2,p3,p4〕forpinpl:p。start()forpinpl:p。join()Process对象的其他方法或属性
  terminate与isalivefrommultiprocessingimportProcessimporttimeimportrandomclassPiao(Process):definit(self,name):self。namenamesuper()。init()defrun(self):print(sispiaoingself。name)time。sleep(random。randrange(1,5))print(sispiaoendself。name)p1Piao(xm)p1。start()p1。terminate()关闭进程,不会立即关闭,所以isalive立刻查看的结果可能还是存活print(p1。isalive())结果为Trueprint(开始)print(p1。isalive())结果为False
  name与pidfrommultiprocessingimportProcessimporttimeimportrandomclassPiao(Process):definit(self,name):self。namenamesuper()。init()Process的init方法会执行self。namePiao1,所以加到这里,会覆盖我们的self。namename为我们开启的进程设置名字的做法super()。init()self。namenamedefrun(self):print(sispiaoingself。name)time。sleep(random。randrange(1,3))print(sispiaoendself。name)pPiao(egon)p。start()print(开始)print(p。pid)查看pid

华为发起反击,不仅要裁员千人,还要取消5G技术授权?作为5G时代的领军人物之一,华为的影响力自然不必多说,不管是5G专利,技术成熟度在全球都是鼎鼎大名。尽管被一些人针对限制了芯片,但是5G技术却没有被束缚,虽然合同数量被爱立信、……谍照晚报三星SPenPro手写笔华硕ROG5s配置曝光都围观小米发布会去了吧?〔狗头〕三星SPenPro手写笔已于发布会前曝光三星即将于周三(8月11日)的GalaxyUnpacked发布会上推出一系列硬件新品。今年早些时候……华为P50发布仅可使用4G网络,华为未来如何7月29日,华为的P50正式发布,此次华为P50采用了高通骁龙888,而P50Pro则采用了麒麟9000。不过可惜的是,这次华为的P系列手机都是4G网络,这也是源于美国的制裁的……活动回顾这届配饰新商家太猛了!lazada喊你上车,就现在相较欧美已经高速发展的线上经济,尚未完全开发,但具备充足消费潜力的东南亚电商市场已成兵家必争之地。无论是平台电商、二类电商,还是以COD等形式售卖的电商模式,都能在东南亚地区找……承认吧,不做收纳规划的家,真的容易乱家庭收纳应该如何处理收纳总是被认为只与日常收拾整理有关,殊不知,在住宅设计初期就应该被涵盖其中,只不过时常被遗忘罢了。所以,频繁收拾又频繁零乱可能真的不是你的错,而……未来五年内在广州买房,请认准这7大区域一:荔湾区大家都知道荔湾区的产业是它的诟病,但还是不影响荔湾区的房价升值上涨,荔湾区的高光时刻也快正在到来荔湾区广钢新城还没有落幕,以及万科花地湾、广船板块,白鹅潭……18年后,竺延风再绘岚图01hr2002年,竺延风在长春喊话耐住寂寞20年,引发市场一片哗然。18年后,竺延风在武汉再绘新岚图,并将其定义为制造车新实力。7月29日,东风集团全新高端新能源品牌岚……0119复盘数字经济修复基础建设蓝筹反弹,新能源赛道大跌欧美开始犹豫疫情,市场继续走弱。微软收购暴雪的新闻,叠加昨天国家发改委说的适度超前建设数据中心,5G,区块链以及基础建设的表述,市场选择了方向,旧经济和旧的赛道全部崩塌,市场去……关于iPhone的基本选择原则iPhone型号众多,从第1代至5为止,配置除了存储空间外没区别,中间出来了一个5C;之后开启大屏模式,从iPhone6至iPhone8后分为2个系列,非Plus系列与Plus……7寸大的电脑,连手机热点玩魔兽世界怀旧服,是什么体验?魔兽世界虽然是一款大型3D网络游戏,但是最近新开了怀旧服60级的版本,毕竟是十多年前的游戏了哦,所以对电脑硬件的配置要求并不高,GPDPocket2代迷你电脑,也是可以玩的哦,……盘点国内10家车联网企业随着5G信息通信技术的快速发展,车联网迎来了产业发展的春天。借助于人、车、路、云之间的全方位连接和信息交互,实现了三网融合,催生了大量新的产品应用,满足人们对车载信息服务和交通……大数据开发zookeeper前瞻今天给大家带来的是:大数据开发zookeeper,但是在正式讲zookeeper之前,还是先给大家讲解一下其他的,这样才能够帮助大家更容易理解zookeeper,所以本期就是z……
高中物理4。7力学单位制教案教学目标:一、知识目标:1、知道什么是单位制,什么是基本单位,什么是导出单位;2、知道力学中的三个基本单位。二、能力目标:培养学生在计算中采用国际……分数的简单计算说课稿范文1、说教材:义务教育课程标准实验教科书数学三年级上册第七单元分数初步认识第四课时:分数的简单计算(书本99101页、例1和例2)包括:同分数分数的加法,同分数分数的减法2……小雪花教学反思范文(精选5篇)身为一位优秀的老师,我们的工作之一就是课堂教学,写教学反思能总结教学过程中的很多讲课技巧,那么优秀的教学反思是什么样的呢?下面是小编帮大家整理的小雪花教学反思范文(精选6篇),……尊重体谅父母第三课关爱父母学会孝敬第二框尊重体谅父母大团初级中学倪君玲一、教学目标1、知识与技能:了解什么是孝敬,为什么孝敬,怎样孝敬父母;以及孝敬父母的方法和艺术……美工教案会飞的塑料袋教学目标:1、培养幼儿的环保意识,养成不乱扔垃圾的习惯。2、按自己的意愿装饰塑料袋,运用剪、贴、撕、画等多种技能进行大胆想象、创造。3、发展幼儿的语言表达能力……小桥流水人家教案设计范文【学习目标】1、认识6个生字,读读记记婀娜、舞姿、粼粼、波纹、潺潺、点缀、浮现等词语。2、正确、流利、有感情地朗读课文,理清写作思路,归纳文章的主要内容。3、……小熊不刷牙说课稿范文一、说活动设计意图:在幼儿园,有很多幼儿家长会跟老师反映说自己的孩子比较贪吃,但是不喜欢刷牙,不知道如何保护牙齿,希望老师能帮忙教育一下。对于中班的幼儿来说,贪吃,自我控……等比数列高中数学说课稿一、地位作用数列是高中数学重要的内容之一,等比数列是在学习了等差数列后新的一种特殊数列,在生活中如储蓄、分期付款等应用较为广泛,在整个高中数学内容中数列与已学过的函数及后……湘夫人教学设计范文作为一位无私奉献的人民教师,就不得不需要编写教学设计,教学设计是根据课程标准的要求和教学对象的特点,将教学诸要素有序安排,确定合适的教学方案的设想和计划。教学设计应该怎么写呢?……笔算乘法数学三年级上册教学反思本节课中以书本中的情景为学习材料,简单呈现,直接入题,新课程改革实施以来,曾一度迷失在热闹的情景教学中。轻易抛弃教材目的就在于让学生掌握学习的主动权,节省时间以投入到有效学习中……识字2的教案模板教学目标1。学会8个生字,认识1个偏旁。2。借助课文插图和多媒体情境,了解词语意思,欣赏如画的壮乡山水,感受如诗的壮族风情。3。诵读课文,培养语感,积累词语。……社会领悟的幼儿教案作为一名辛苦耕耘的教育工作者,可能需要进行教案编写工作,通过教案准备可以更好地根据具体情况对教学进程做适当的必要的调整。优秀的教案都具备一些什么特点呢?下面是小编为大家整理的社……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网