专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

python并发编程管道与队列实现进程间通信

  1。1队列实现进程间通信1。1。1Queue常用类
  类
  说明
  Queue(〔maxsize〕)
  创建共享的进程队列,maxsize是队列中允许的最大项,省略则队列无大小限制1。1。2Queue常用实例q常用方法
  方法
  说明
  q。canceljointhread()
  不会在进程退出时自动连接后台线程,可防止jointhread()方法阻塞
  q。jointhread()
  连接队列的后台线程。此方法用于q。close()方法之后,等待所有队列项被消耗完。调用q。canceljointhread()方法可以禁止这种行为
  q。close()
  关闭队列。调用此方法时,后台线程将继续写入那些已入队列但尚未写入的数据
  q。empty()
  如调用此方法时q为空,返回True。此方法返回结果不可靠,在返回和使用结果之间,队列有可能已经加入新的项
  q。full()
  如调用此方法时q已满,返回Ture。同样此方法返回结果不可靠
  q。get(〔block〔,timeout〕〕)
  返回q中的一项,如果q为空,此方法将阻塞,直到队列中有项可用为止。block用于控制阻塞行为,默认为True。如果设为False,将引发Queue。Empty异常,timeout为可选超时时间
  q。getnowait()
  等同于q。get(False)方法
  q。put(item〔,block〔,timeout〕〕)
  将item放入队列中,如果队列已满,此方法将阻塞至有可用空间为止。block控制阻塞行为,默认为True。如果设置为False,将会引发Queue。Full异常。timeout指定在阻塞模式中等待可用空间的时间长短,超时后将引发Queue。Full异常
  q。putnowait(item)
  等同于q。put(item,False)方法
  q。qsize()
  返回队列中项的数量,结果不可靠1。1。3JoinableQueue
  类
  说明
  JoinableQueue(〔maxsize〕)
  创建可连接的共享进程队列,类似Queue的一个对象,但它允许项的消费者通知生产者项已被成功处理1。1。4JoinableQueue实例除Queue实例方法处的方法
  方法
  说明
  q。taskdone()
  消费者使用此方法发出信号,表示q。get()返回项已经被成功处理,如果调用此方法的次数大于从队列中删除的项的数量,将引发ValueError异常
  q。join()
  生产者使用此方法进行阻塞,直到队列中的所有项均被处理。阻塞将持续到为队列中的每个项均被调用q。taskdone()方法为止1。1。5JoinableQueue实现进程间通信示例importmultiprocessingdefconsumer(inputq):消费者whileTrue:iteminputq。get()处理项print(f处理inputq:{item})发出信号通知任务完成inputq。taskdone()defproducer(sequence,outputq):生产者foriteminsequence:outputq。put(item)ifnamemain:qmultiprocessing。JoinableQueue()运行消费者进程conspmultiprocessing。Process(targetconsumer,args(q,))consp。daemonTrueconsp。start()运行生成者进程sequence(1,2,3,4)producer(sequence,q)等待所有项被处理完成q。join()1。1。6JoinableQueue实现多个消费都进程池间通信示例frommsilibimportsequenceimportmultiprocessingdefconsumer(inputq):消费者whileTrue:iteminputq。get()处理项print(f处理inputq:{item})发出信号通知任务完成inputq。taskdone()defproducer(sequence,outputq):生产者foriteminsequence:outputq。put(item)ifnamemain:qmultiprocessing。JoinableQueue()多个进程运行消费者模型consp1multiprocessing。Process(targetconsumer,args(q,))进程1处理项consp1。daemonTrueconsp1。start()consp2multiprocessing。Process(targetconsumer,args(q,))进程2处理项consp2。daemonTrueconsp2。start()运行生产者sequence(1,2,3,4)producer(sequence,q)等待所有项被处理q。join()1。1。7哨兵模式实现多进程间通信示例fromastimportargfromaudioopimportmulfrommsilibimportsequenceimportmultiprocessingimportsqlite3fromtkinter。messageboximportNOdefconsumer(inputq):whileTrue:iteminputq。get()处理哨兵ifitemisNone:break处理项print(f处理inputq:{item})关闭print(consumer处理完成!)defproducer(sequence,outputq):foriteminsequence:outputq。put(item)ifnamemain:qmultiprocessing。Queue()启动消费者进程conspmultiprocessing。Process(targetconsumer,args(q,))consp。start()生产者sequence(1,2,3,4)producer(sequence,q)在队列上安置哨并q。put(None)等待消费者进程关闭consp。join()
  注意:如果使用哨兵,一定要在队列上为每个消费都都安置哨兵,才能保证所有消费者进程都能关闭。1。2管道实现进程间通信1。2。1管道类
  类
  说明
  Pipe(〔duplex〕)
  在进程之间创建一条管道,并返回元组(conn1,conn2),其中conn1和conn2表示管道两端的Connection对象。默认情况下,管道是双向的。如果将duplex置为False,conn1只能用于接收,conn2只能用于发送。必须在创建和启动使用管道的Process对象之前调用Pipe()方法1。2。2Pipe()返回的Connection对象实例c具有的方法和属性
  方法
  说明
  c。close()
  关闭连接。如果c被垃圾回收,将自动调用此方法
  c。fileno()
  返回连接使用的整数文件描述符
  c。pull(〔timeout〕)
  如果连接上的数据可用,返回True,timeout指定等待的最长时限。如果省略此参数,方法将立即返回结果。如果将timeout置为None,操作将无限期地等待数据到达
  c。recv()
  接收c。send()方法返回的对象。如果连接的另一端已经关闭,再也不存在任何数据,将引发EOFError异常
  c。recvbytes(〔maxlength〕)
  接收c。sendbytes()方法发送的一条完整的字节消息。maxlength指定要接收的最大字节数。如果进入的消息超过了这个最大值,将引发IOError异常,并且在连接上无法进行进一步读取。如果连接的另一端已经关闭,再也不存在任何数据,将引发EOFError异常
  c。recvbytesinto(buffer〔,offset〕)
  接收一条完整的字节消息,并把它保存在buffer对象中,该对象支持可写入缓冲区接口(即bytearray对象或类似的对象)。offset指定缓冲区中放置消息处的字节位移。返回值是收到的字节数。如果消息长度大于可用的缓冲区空间,将引发BufferTooShort异常
  c。send(obj)
  通过连接发送对象。obj是与序列化兼容的任意对象
  c。sendbytes(buffer〔,offset〔,size〕〕)
  通过连接发送字节数据缓冲区。buffer是支持缓冲区接口的任意对象,offset是缓冲区中的字节偏移量,而size是要发送字节数。结果数据以单条消息的形式发出,然后调用c。recvbytes()函数进行接收1。2。3管道实现生产者消费都模型示例importmultiprocessingdefconsumer(pipe):outputp,inputppipeinputp。close()关闭管道的输入端whileTrue:try:itemoutputp。recv()exceptEOFError:breakTODO可替换为有用的工作print(item)关闭print(consumerdone。)defproducer(sequence,inputp):foriteminsequence:inputp。send(item)ifnamemain:创建管道(outputp,inputp)multiprocessing。Pipe()启动消费者进程conspmultiprocessing。Process(targetconsumer,args((outputp,inputp),))consp。start()关闭生产者中的输出管道outputp。close()生产项sequence(1,2,3,4)producer(sequence,inputp)半闭输入管道,表示输入完成inputp。close()等待消费者进程结束consp。join()
  说明:如果生产者或者消费者中都没有使用管道的某个端点,就就将其关闭。如果忘记执行这些步骤,程序可能在消费者中的recv()操作上挂起。管道是由操作系统进行引用计数的,必须在所有进程中关闭管道后才能生成EOFError异常。因此,在生产者中关闭管道不会有任何效果,除非消费者中也关闭了相同的管道端点1。2。4管道双向通信示例importmultiprocessingfromunittestimportresultdefadder(pipe):serverp,clientppipeclientp。close()whileTrue:try:x,yserverp。recv()exceptEOFError:breakresultxyTODO可用实例业务代替serverp。send(result)关闭print(Serverdone。)ifnamemain:生成管道(serverp,clientp)multiprocessing。Pipe()启动服务器进程adderpmultiprocessing。Process(targetadder,args((serverp,clientp),))adderp。start()关闭客户端中的服务器管道serverp。close()客户端发出请求clientp。send((3,4))print(clientp。recv())clientp。send((Hello,World))print(clientp。recv())完成,关闭管道clientp。close()等待消费者进程完成adderp。join()

央视315晚会曝光不可注射的美容针或导致毁容3月15日晚间,2023年央视315晚会曝光了一种不可注射的美容针,这种妆字号美容针或可能导致毁容。其中,广州暨肽因子医疗生物科技有限公司遇太美生物科技有限公司海茂生物科技有限公司广州发展研究报告新能源转型爆发,开启估值修复之旅(报告出品方作者国泰君安证券,于鸿光孙辉贤陈卓鸣)1。核心结论新能源转型爆发,开启估值修复之旅市场认为公司近年ROE弱于同业,PB估值将同ROE长期处于较低水平而我们认为1)公司十一日售罄!首批新能源REITs亮相即受热捧,传递哪些积极信号上线即备受关注的首批2只新能源REITs认购火热,也推动近期的公募发行市场增加了2只日光基。3月15日,中信建投基金发布旗下中信建投国家电投新能源REIT提前结募的公告表示,基金原中哈(连云港)物流合作基地累计到发中欧班列5000列记者从南京海关获悉,截至目前,一带一路国际经贸合作实体平台项目中哈(连云港)物流合作基地累计到发中欧班列5000列,一条覆盖日韩东南亚中西亚蒙古国欧洲的新丝路加快形成。图为中欧班列连入五球的哈兰德养生秘笈竟是生啃胡萝卜生吃牛心牛肝挪威魔人哈兰德今晨对莱比锡一役全场触球30次,8次射门8次射正,打进5球。哈兰德去年9月曾在采访中表示,自己最大的梦想是触球5次打进5球。这样恐怖的进球效率已经是独步天下。哈兰德庆这个春天,总要来一趟菏泽吧来源海报新闻谷雨三朝看牡丹,菏泽牡丹花更艳。四月,菏泽牡丹花开正艳,雍容华贵芳香浓郁,万亩花田更是连阡接陌,蔚为壮观。菏泽向世界发出国色天香之约菏泽,准备好了!总要来一趟菏泽吧。在曾经能穷游的泰国,网友戏称高攀不起了众所周知,泰国是一个旅游资源丰富水果充足价格实惠的国家,成为不少游客出国旅游的的第一选择。然而最近泰国旅游价格飙升引发了游客们的积极讨论。今年去泰国花了以往三倍多的钱,以后可能会减315晚会点名景区回应安全带不安全暂不考虑整改,6年来没发生任何意外央视用诚信之光照亮消费信心315晚会中,景区高空项目安全带的不安全性被曝光。事情起源于2022年7月,天津市蓟州区的九山顶景区,一名游客在步步惊心网红吊桥项目游玩时突然昏迷,悬在半为什么会爱上中山?在中国663座城市里,有超过187条中山路。但唯有她,以中山单独命名一整座城。她是一代伟人孙中山先生的家乡,中国飞人苏炳添,从这里起飞。她是早在1997年就荣获联合国人居奖的宜居城盐田港集团更名,深圳港口整合取得实质性进展?时隔近23年,盐田港再次更名,弱化了盐田的区位属性,更名为深圳港集团有限公司。3月15日盐田港(000088。SZ)发布公告,经深圳市人民政府国有资产监督管理委员会批准同意国家市场河南队官方股改还在推进中,新赛季航海体育场仍是球队主场直播吧3月15日讯河南嵩山龙门官方消息,俱乐部新赛季主场仍然是航海体育场。3月15日上午,河南队举办一线队球迷开放日活动,数百名球迷及媒体代表齐聚航海体育场。河南队官方表示,近距离
美国不演了!涉台法案出炉中国若敢收台,可没收中国的海外资产中国若收台,美国要没收海外资产?美国现在处于一个非常危险的状态,因为他们正在把国家之间的分歧,变成民族的仇恨,如果华盛顿不对这种趋势加以控制的话,恐怕将要演变成为另一个纳粹帝国。2(体育)足球U20亚洲杯中国队训练备战当日,中国U20国家男子足球队在乌兹别克斯坦首都塔什干进行赛前训练。3月3日,中国队将在U20男足亚洲杯小组赛首轮比赛中对阵日本队。3月2日,中国队球员高玉男(右)在训练中。新华社混淆系列梦想和目标每个人都有追求自己梦想的自由,没有梦想和蔬菜有什么区别呢,在追求梦想的道路上必然有坎坷,梦想和目标是有差别的,梦想在于个人真正热爱的东西,而目标会存在功利性的成分,会更关注可达性,日本邀请中国出席裕仁天皇的葬礼,我国代表出席,回应四个字说到日本,中国人都熟悉,不仅仅因为它是我们的邻居,主要原因在于他们在历史上犯下的罪恶,使得我国三千五百多万的军民牺牲。而造成这样严重的苦难,他们却没有丝毫反省的意识,还颠倒黑白,因中国电信变了颜色中国联通变了位置,中国移动十年如一近日,中国电信和中国联通接连更换了新的LOGO,都是在原有的基础上,通过简单的变化,赋予新的内涵,而中国移动至今仍然沿用10年前的LOGO。中国电信标志性中字牛头标自2002年启用美芯片禁令启动,目标直指中国,韩媒韩国企业高兴不起来来源环球时报环球时报综合报道美国商务部周二发布一系列文件,启动芯片与科学法案有关芯片补贴的申请程序,意味着这一主要目的为了限制中国芯片产业发展的芯片禁令正式实施。不过,相关补贴申请IDC2022年全年中国VR一体机首破年出货量100万台大关IT之家3月2日消息,国际数据公司(IDC)今日发布报告称,2022年,中国ARVR头显出货120。6万台(salesin口径),其中AR出货10。3万台,VR出货110。3万台。中国工程院院士倪光南不受垄断制约,RISCV架构在中国CPU领域最受欢迎文观察者网吕栋可以毫不夸张地说,今天RISCV是中国CPU领域最受欢迎的架构,中国芯片产业和整个芯片生态将会越来越多地聚焦于RISCV架构,中国的巨大市场将成为支撑RISCV的重要19年微软华人副总弃美回国,引发比尔盖茨震怒只愿为国培养人才美国是世界上最发达的国家,当然它们的科技程度也非常的高,这其中就有许多我国科技人才的贡献。美方之所以拥有这么多的各领域的顶尖人才,是因为那里的就业福利非常的好。我国想要超越它们,就古代买一个丫鬟需要多少钱?买了可以让她干啥?众所周知,夏商周时期是中国历史上繁盛的奴隶制王朝时期,奴隶深受压迫,苦不堪言。纵使后来中国历史进入到了封建社会,中国依然有奴隶的存在。只不过他们有了新的名字,奴婢奴才丫鬟,这些大家紧裹黑袍下的伊朗社会新月众所周知,历史上的伊朗同样与我国一样,经历了扩张内乱被侵略的过程,国土版图经过无数次整合为了统一内部势力,他们不得已采用了相同或相似的宗教信仰来联合各个部族,便采用了古兰经对民众进
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网