Py学习  »  Python

Python多进程编程时__name__属性的作用

Python小屋 • 3 年前 • 396 次点击  
推荐图书:
《Python程序设计(第3版)》,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,8月第4次印刷

京东购买链接:https://item.jd.com/12668739.html

天猫、当当均已上架,可以选择自己常用平台搜索“董付国 第3版”找到本书。
配套资源:教学大纲、电子教案、微课视频、PPT课件、例题源码、习题答案、考试系统。
《Python程序设计(第3版)》配套教学大纲
《Python程序设计(第3版)》课后习题答案
发送公众号消息“小屋刷题”可以获取Python小屋刷题神器,1200道Python题目随时可以在线练习。

=======================

问题描述:

Python程序中,由于GIL(Global Interpreter Lock,全局解释器锁)的原因,采用多线程编程并不能大幅度提高任务吞吐量。如果要充分利用硬件资源和大幅度提高任务吞吐量,需要使用多进程编程技术。

进程是正在执行中的应用程序,是操作系统进行资源分配的最小单位。一个进程是正在执行中的一个程序使用资源的总和,包括虚拟地址空间、代码、数据、对象句柄、环境变量和执行单元等等。一个应用程序同时打开并执行多次,就会创建多个进程。

Python标准库multiprocessing用来实现进程的创建与管理以及进程间的同步与数据交换,是支持并行处理的重要模块,其中创建、启动进程以及进程间同步的用法与threading中的线程类似。标准库multiprocessing同时支持本地并发与远程并发,有效避免了GIL问题,可以更有效地利用CPU资源,尤其适合多核或多CPU环境。

众所周知,Python程序在运行时有个特殊属性__name__,当在Python开发环境中或命令提示符中直接执行Python程序时,特殊属性__name__的值为'__main__'。当使用import语句导入Python程序作为模块使用时,特殊属性__name__的值为程序文件的名字。那么,特殊属性__name__还有别的取值吗?程序中if __name__ == '__main__'这样的判断和选择结构具体有什么作用呢?为什么多进程编程时程序中总是要加上这样一句呢?下面的演示代码解释了这个问题。

演示代码:


运行结果:



温馨提示
关注本公众号“Python小屋”,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的1000篇原创技术文章列表(可根据关键字在页面上搜索感兴趣的文章),通过“最新资源”==>“微课专区”可以免费观看500节Python微课,通过“最新资源”==>“培训动态”可以查看近期Python培训安排,通过“最新资源”==>“教学资源”可以查看Python教学资源,海量宝藏等你来挖掘

---董付国老师Python系列图书---
友情提示:不建议购买太多,最好先通过京东、当当、天猫查阅图书了解目录和侧重点,然后再选择购买适合自己的书。
(1)《Python程序设计(第2版)》(ISBN:978-7-302-43651-5),清华大学出版社,2016年8月出版,2019年度清华大学出版社畅销图书
(2)《Python可以这样学》(ISBN:978-7-302-45646-9),清华大学出版社,2017年2月
(3)《Python程序设计基础(第2版)》(ISBN:978-7-302-49056-2)清华大学出版社,2018年1月出版,2019年度清华大学出版社畅销图书
(4)《中学生可以这样学Python》(ISBN:978-7-302-48039-6)清华大学出版社
(5)《Python程序设计开发宝典》(ISBN:978-7-302-47210-0)清华大学出版社,2018年10月
(6)《玩转Python轻松过二级》(ISBN:978-7-302-49916-9)清华大学出版社,2018年5月
(7)《Python程序设计基础与应用(ISBN:978-7-111-60617-8),机械工业出版社,2018年9月
(8)Python程序设计实验指导书》(ISBN:9787302525790),清华大学出版社,2019年4月
(9)《Python编程基础与案例集锦(中学版)(ISBN:978-7-121-35539-4),电子工业出版社,2019年4月
(10)大数据的Python基础》(ISBN:978-7-111-62455-4),机械工业出版社,2019年5月出版
(11)译作《Python程序设计》,机械工业出版社(华章),2018年11月出版
(12)繁体版《Python也可以这样学》,台湾博硕文化股份有限公司,2017年10月出版,本书为《Python可以这样学》在台湾发行的繁体版,两本书内容一样,不建议重复购买
(13)《Python程序设计实例教程》(ISBN:978-7-111-63198-9),机械工业出版社
(14)《Python数据分析、挖掘与可视化》(ISBN:978-7-115-52361-7),人民邮电出版社,2019年12月
(15)《Python程序设计(第3版)》(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月
(16)《Python程序设计实用教程》(ISBN:978-7-5635-6065-3),北京邮电大学出版社,2020年7月
(17)《中学生可以这样学Python(微课版)》清华大学出版社,ISBN:9787302554639,2020年8月

2020年秋季学期Python教材推荐与选用参考
董付国老师Python在线课程资源使用方法
董付国老师6本Python教材PDF版免费阅读
《Python数据分析、挖掘与可视化》前3章书稿PDF免费阅读
《Python程序设计基础与应用》前3章书稿PDF免费阅读
号外号外--Python小屋刷题神器上线啦
《中学生可以这样学Python》84节微课免费观看地址
《Python编程基础与案例集锦(中学版)》80课视频免费观看地址


相关阅读:

Python+tkinter+多线程实现桌面上倒计时关闭的顶层窗口

Python实现多进程/多线程同时下载单个文件

Python自动接收微信群消息并推送相应的公众号文章

Python多线程编程的一个掉进去不太容易爬出来的坑

Python+socket+多线程实现同时应答多客户端的自助聊天机器人

重要更新|《Python程序设计开发宝典》例12-7代码有bug

详解Python线程对象daemon属性对线程退出的影响

Python多进程使用队列共享数据协同判断素数

Win10+Python3.6配置Spark创建分布式爬虫

Python使用多进程提高网络爬虫的爬取速度

使用Python编写属于自己的录音软件

Python多线程与Socket编程综合案例:素数

Python使用多线程搜索指定范围内的所有素数

Python使用两个Event对象同步生产者消费者问题

Python多线程编程基础3:创建线程与调用函数的区别

Python多线程编程基础2:如何创建线程

Python多线程编程基础1:为什么要使用线程

Python使用标准库subprocess调用外部程序

Python使用BoundedSemaphore对象进行线程同步

Python使用Queue对象实现多线程同步小案例

Python使用Condition对象实现多线程同步

Python多线程编程中daemon属性的作用

Python使用pyopencl在GPU上并行处理批量判断素数

Python使用pycuda在GPU上并行处理批量判断素数

Python利用Spark并行处理框架批量判断素数

Python使用Manager对象实现不同机器上的进程跨网络传输数据

Python多线程编程中使用Barrier对象进行同步

Python使用多进程批量判断素数

Python并行判断多个大整数是否为素数

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/73392
 
396 次点击