python并发编程之多进程(操作篇)简爱cx

一 multiprocessing模块介绍

二 Process类的介绍

三 Process类的使用

四 守护进程

五 进程同步(锁)

六 队列(推荐使用)

七 管道

八 共享数据

九 信号量(了解)

十 事件(了解)

十一 进程池

multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。

需要再次强调一点的是:与线程不同。进程没有任何共享状态,进程修改的额数据没改动仅限于改进程内

创建进程的类:

参数介绍:

方法介绍:

属性介绍:

注意:在windows中Process()必须放到# if name == 'main':下

详细解释

创建并开启子进程的两种方式

方法一

方法二

进程直接的内存空间是隔离的

练习1:把上周所学的socket通信变成并发的形式

server端

多个client端

这么实现有没有问题???

*Process对象的join方法*

join:主进程等,等待子进程结束

有了join,程序不就是串行了吗???

Process对象的其他方法或属性(了解)

terminate与is_alive

name与pid

僵尸进程与孤儿进程(了解)

思考:

答案

主进程创建守护进程

其一:守护进程会在主进程代码执行结束后就终止

其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children

注意:进程之间是互相独立的,主进程代码运行结束,守护进程随即终止

迷惑人的例子

进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,

而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理

part1:多个进程共享同一打印终端

并发运行,效率高,但竞争同一打印终端,带来了打印错乱

加锁:由并发变成了串行,牺牲了运行效率,但避免了竞争

part2:多个进程共享同一文件

文件当数据库,模拟抢票

并发运行,效率高,但竞争写同一文件,数据写入错乱

加锁:购票行为由并发变成了串行,牺牲了运行效率,但保证了数据安全

总结:

进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的

创建队列的类(底层就是以管道和锁定的方式实现):

参数介绍:

方法介绍:

主要方法:

其他方法(了解):

应用:

生产者消费者模型

在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。

为什么要使用生产者和消费者模式

在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这个问题于是引入了生产者和消费者模式。

什么是生产者消费者模式

生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。

基于队列实现生产者消费者模型

生产者消费者模型总结

解决方式无非是让生产者在生产完毕后,往队列中再发一个结束信号,这样消费者在接收到结束信号后就可以break出死循环

生产者在生产完毕后发送结束信号None

注意:结束信号None,不一定要由生产者发,主进程里同样可以发,但主进程需要等生产者结束后才应该发送该信号

主进程在生产者生产完毕后发送结束信号None

但上述解决方式,在有多个生产者和多个消费者时,我们则需要用一个很low的方式去解决

有几个消费者就需要发送几次结束信号:相当low

其实我们的思路无非是发送结束信号而已,有另外一种队列提供了这种机制

进程间通信(IPC)方式二:管道(不推荐使用,了解即可)

介绍

基于管道实现进程间通信(与队列的方式是类似的,队列就是管道加锁实现的)

注意:生产者和消费者都没有使用管道的某个端点,就应该将其关闭,如在生产者中关闭管道的右端,在消费者中关闭管道的左端。如果忘记执行这些步骤,程序可能再消费者中的recv*()*操作上挂起。管道是由操作系统进行引用计数的,必须在所有进程中关闭管道后才能生产EOFError异常。因此在生产者中关闭管道不会有任何效果,付费消费者中也关闭了相同的管道端点。

管道可以用于双向通信,利用通常在客户端/服务器中使用的请求/响应模型或远程过程调用,就可以使用管道编写与进程交互的程序

展望未来,基于消息传递的并发编程是大势所趋

即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合

通过消息队列交换数据。这样极大地减少了对使用锁定和其他同步手段的需求,

还可以扩展到分布式系统中

进程间通信应该尽量避免使用本节所讲的共享数据的方式

进程之间操作共享的数据

信号量Semahpore(同线程一样)

Event(同线程一样)

在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。多进程是实现并发的手段之一,需要注意的问题是:

1、很明显需要并发执行的任务通常要远大于核数

2、一个操作系统不可能无限开启进程,通常有几个核就开几个进程

3、进程开启过多,效率反而会下降(开启进程是需要占用资源的,而且开启多余核数目的进程也无法做到并行)

例如当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态生成多个进程,十几个还好,但如果是上百个上千个,手动的去限制进程数量却又过于繁琐,此时可以发挥进程池的功效。

ps:对于远程过程调用的高级应用程序而言,比如使用进程池,Pool可以提供指定数目的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,就重用进程池中的进程。

创建进程池的类:如果指定numprocess为3,则进程池会从无到有创建三个进程,然后至始至终使用这三个进程去执行所有任务,不会开启其他进程

THE END
0.简爱第一章(1)pen•e•trat•ing /'penɪtreɪtɪŋ/adj 1.(目光、问题等)尖锐的,锐利的her penetrating gaze她那锐利的目光2.(头脑等)敏锐的,聪明的a penetrating mind敏锐的头脑 3.(声音等)尖锐的,刺耳的penetrating blasts of a whistle刺耳的汽笛声4.弥漫的;渗透https://www.meipian.cn/28avi09
1.简·爱简·爱导演(1) 演员(22) 猫眼用户服务协议 |客服电话:1010-5335 京ICP备16022489号-1 京公网安http://canary.movie.test.maoyan.com/asgard/movie/251511/credits
2.简爱(豆瓣)简爱(泽拉· 克拉克 Zelah Clarke 饰)从小就失去了父母,成为孤儿,在经历了种种磨难之后,简爱终于完成了学业,成为了一名教师。简爱来到了桑菲尔德山庄,在那里遇见了个性古怪的罗切斯特(提摩西·道尔顿 Timothy Dalton 饰),两人针锋相对,常常产生激烈的争辩,与此同时,爱情亦在默默滋生。 https://movie.douban.com/subject/1304930/
3.《简爱》全集电视剧剧情简介 :简爱(泽拉· 克拉克 Zelah Clarke 饰)从小就失去了父母,成为孤儿,在经历了种种磨难之后,简爱终于完成了学业,成为了一名教师。简爱来到了桑菲尔德山庄,在那里遇见了个性古怪的罗切斯特(提摩西·道尔顿 Timothy Dalton 饰),两人针锋相对,常常产生激烈的争辩,与此同时,爱情亦在默默滋生。 罗切斯特无法抑制内心的感情,向简爱表 https://teleplay.soso.com/teleplay/orswyzlqnrqxsxzwgeztgobvbg6pfmfo.html
4.简爱购票剧情介绍演职人员图集讲述贫困出身的少女简·爱得到一个机会离开孤儿院到神秘古堡中当小女孩的保姆,本来以为可以重享人间温情,不料男主人爱德华·罗切斯特个性暴燥,行事神秘,令她的感情饱受折磨。当爱德华决定另娶新婚夫人时,简爱黯然离开古堡。但在她惊闻古堡失火烧毁,而她所爱的堡主已变成了瞎子之后,又忍不住重投爱德华的怀抱。 http://maoyan.dianping.com/asgard/movie/4947
5.[香港简爱生活国际家居建材有限公司]详细地址,位置示意图,地图香港简爱生活国际家居建材有限公司,电话:075582450239,地址位于广东深圳市福田区八卦四路庆安航空大厦303,靠近泥岗西路、梅岗南街、静逸街和上步北路。在公共交通方面,附近设有多个公交站,包括长乐花园、市二医院①、体育馆西、笔架山公交总站等,可以换乘公交微循环线路2路、M454路、M588路、M224路等多条公交线路。此https://m.city8.com/sz/zhuanyejigou/24866184_taod
6.温州新闻网温州网 - 温州市的网上新闻发布中心、公众信息服务中心和对外宣传的窗口。融新闻、全媒体、资讯、财经房产、时尚娱乐、旅游远足、教育培训、短信服务、互动直播、在线多媒体点播等各类信息和功能于一体。温州新闻网 - 浙江省重点新闻网站https://66wz.com/
7.《简爱》《简·爱》的主题思想是追求自由、平等、真挚的爱情,倡导女性独立自主,追求自我价值。作品通过简·爱和罗切斯特的爱情故事,展现了人性的光辉,弘扬了正义、善良、勇敢等美好品质。必读发表评论 《简爱》 下载源文件 下载桌面端 加入购物车 社区模板帮助中心,点此进入>> 哲谦ing 关注 他的近期作品 查看更多>> https://mm.edrawsoft.cn/template/1511780
8.简爱01720·精选集楚线完结ing·帝女娇 155.4万80.3万 119.1万 这个仇我先记下了 62.9万110.8万 123.8万 天下权臣(分线换装) 21.8万9.4万 4.7万 完结·剧情制霸 宫斗之狐媚惑主 61.9万120.7万 88.2万 醉梦山河 158.1万88.1万 107.2万 半路遇狐 157.9万86.8万 117.1万 新作《爆红娱乐圈》 名震金陵城 40.3万61.2万 https://m.66rpg.com/favorites?folder=12775128
9.《简爱》第11集完整版免费在线观看英国剧In quick succession, Wan loses her job and her father, suddenly inheriting her father's grocery stor 鲸鱼杂货铺 更新至第02集 电视剧《简爱》精选短评 西瓜视频的网友观后影评: 太棒了《简爱》的演员真是问心无愧。前期已经准备了将近半年。耿军导演的心思好细腻,拍到满足的画面也自己跟着一同代入https://www.mhz8.com/vodplay/240325-1-11.html
10.简爱英文读后感(精选12篇)简爱英文读后感(精选12篇) 品味完一本名著后,你心中有什么感想呢?为此需要认真地写一写读后感了。你想知道读后感怎么写吗?以下是小编整理的简爱英文读后感,there must be something wrong ing with the excellence---perhaps not only should another section be added to enrich the story,but also we may seehttps://m.ruiwen.com/duhougan/1197063.html
11.《简爱》英文读后感(精选15篇)《简爱》英文读后感(精选15篇) 当阅读完一本名著后,相信大家都积累了属于自己的读书感悟,记录下来很重要哦,一起来写一篇读后感吧。可是读后感怎么写才合适呢?下面是小编帮大家整理的《简爱》英文读后感,仅供参考,大家一起来看看吧。 《简爱》英文读后感 1 https://www.fwsir.com/xinde/html/xinde_20220210142647_1633891.html
12.电影《简爱》英文观后感let the difficult journey feel like a luxury the sun in my hand fuels my arduous heart my will to fight is strong facing even the most unattainable heights the sun in my hand even if only after storms mustering all of its heat https://www.diyifanwen.com/zuowen/yingyongwen/ghg/201111921161643205097883.htm
13.简爱读书笔记英文版简爱读书笔记英文版 Good Paragraphs A singular notion dawned upon me. I doubted not—never doubted – that if Mr. Reed had been alive he wouldcondemning me to take my meals alone, and pass all my time in the nursery, while my cousins were constantly in the drawing-room. Not a hinthttp://www.unjs.com/fanwenwang/ziliao/355492.html
14.文学翻译和推理大模型,以小说简爱中译为例日记《高级文学翻译》中用了祝庆英和吴钧燮的译本, 吴比祝译的晚了十年,教材中说用词准确性上吴相比于宋有所改进。但这本教材评析的中规中矩,以下结合推理大模型对简爱第七章第二段深入分析。 总体来说,祝的翻译更口语化,吴更欧化一点,这是两种翻译风格,没有优劣之分。吴的翻译见下,第一句的使动用法就很能体现https://m.douban.com/note/870802296/
15.JaneEyre简爱Chapter20英语小说'Oh, it was frightful89!' he added, shuddering90. 'And I did not expect it: she looked so quiet at first.' 'I warned you,' was his friend's answer; 'I said- be on your guard when you go near her. Besides, you might have waited till to-morrow, and had me with you: it https://www.enread.com/novel/98303.html
16.简爱JaneEyre(中英对白).pdf14--Jane Eyre.我叫简爱 15--Tell us how we may help you.告诉我们 怎样才能帮助你 16--Your name?你的名字是? 17--Where are you?你在哪里? 18--Must hide必须躲起来 19--St. John, we must get her warm.St. John 我们得让她暖和起来 20--Let us take her upstairs.我们扶她上楼去https://max.book118.com/html/2022/0418/8111135033004073.shtm