新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python进程multiprocessing.Process()的使用解读

发布时间:2026/10/1 22:10:50来源:尧图网络
Python进程multiprocessing.Process()的使用解读
进程.()的使用解读更新时间为2024年02月24日09点32分40秒, 该文章的作者是埃菲尔没有塔尖。这篇文章主要是介绍了有关进程的使用方法, 其中内容具有很强的参照价值, 希望对广大读者朋友们能够带来切实的帮助, 倘若文章之中存在错误之处或者还有诸多没有考虑周全的地方, 还请网友们不要吝惜赐教, 进行批评指正。1.进程概念进程被划分为资源分配的最小的单位, 它是处于程序隔离的边界位置。CPU是通过时间片轮转的机制, 在不同的时间段里面去切换执行不同的进程的, 但是切换进程这个操作是比较耗时的, 所以就引来了一个叫轻量级进程的东西, 也就是我们常说的线程, 一个进程中是包括多个线程的, 代码流其实就是说的进程中同时跑着的多个方法体。2.进程的状态在工作的过程中, 任务的总数量通常情况下是大于中央处理器的物理核心数量的, 这也就是说, 在某一个具体的时间点上,必然会出现一部分任务正在被实际执行, 而同时又有另外一部分任务处于等待状态, 以便后续能够占用到中央处理器来进行执行, 这一种客观存在的现实状况, 直接导致了系统中出现了多种不同的运行状态。3.进程的创建-模块指的是跨平台版本的多进程模块。该模块提供了一个类。这个类用于代表一个进程对象。我们可以把这个对象理解成是一个独立的进程。它能够用来执行另外的事情。这个部分是关于进行方法说明的。其实创建子进程与创建线程的操作过程非常相似, 具体做法是先把需要执行的函数以及相关的参数作为输入项传递进去, 然后生成一个具体的实例对象, 最后再调用其内部的start()这一特定方法来实现启动操作。语法结构如下 ()所建立出来的那个具体的东西, 它经常要用到的那些操作方式如下。创建出来的这个实例对象, 它里面有一些常用的属性。这里存在一个代码样例。import multiprocessingimport timedef work1():for i in range(10):print(work1----, i)time.sleep(0.5)if __name__ __main__:# 创建进程# 1. 导入 multiprocessing 模块# 2. multiprocessing.Process() 创建子进程# 3. start() 方法启动进程p1 multiprocessing.Process(groupNone, targetwork1)p1.start()for i in range(10):print(这是主进程, i)time.sleep(0.5)4.进程名称获取.()5. 你要去把那个进程对应的pid这个数字给拿过来。有两种方法可以获取, 你可以按照这些方法来操作。1.().pid2使用 os模块的()import multiprocessingimport timeimport osdef work():# 获取进程的名称print(multiprocessing.current_process())# 获取进程的pidprint(multiprocessing.current_process().pid, os.getpid())i 0while i 10:print(work中执行, i)time.sleep(0.5)i i 1if __name__ __main__:# 获取进程的pidprint(multiprocessing.current_process())# 创建子进程process1 multiprocessing.Process(groupNone, targetwork)process1.start()i 0while i 10:print(我在主线程中执行,i)time.sleep(0.3)i i 1获取那个父对象的id, 也就是在括号空着的情况下, 去获取父进程的id。6.在启动子进程的时候, 要把相关的参数传递给它。给子进程传递参数, 和给子线程传递参数这两个做法, 在基本的方面上是一样的一样。7.在进程与进程之间, 那些属于全局范畴的变量是不进行共享操作的。import multiprocessing# 定义全局变量num 100# 定义work方法设置num1的值def work():global num # 在函数内部声明使用全局变量numnum num 1 # 对num值进行1print(work num %d % num)# 定义work2方法获取num1的值def work2():print(work2 num %d % num)if __name__ __main__:# 创建子进程process1 multiprocessing.Process(groupNone, targetwork, nameMyProcess)process1.start()# 创建第二个子进程process2 multiprocessing.Process(groupNone, targetwork2, nameMyProcess2)process2.start()运行结果:work num 101work2 num 100从目前显示出来的运行结果我们可以很清楚地看到, 在work函数里面, 对num1变量所做的任何修改操作, 在随后执行的work2函数中并没有能够被获取到或者说接收过来, 此时num1的数值依然是保持原来设定的100。因此, 基于这样的现象可以得出一个确定的结论, 也就是在不同的进程之间, 对于变量的使用权是完全独立的, 各个进程是不可以进行共享使用变量的行为的。8.守护主进程import multiprocessingimport timedef sub_process():for i in range(10):print(子进程运行中, i)time.sleep(0.5)if __name__ __main__:# 创建子进程p1 multiprocessing.Process(groupNone, targetsub_process, namep1)# 设置守护主进程# 第一种方式:# p1.daemon True# 第二种方式(最好在退出exit()前一句使用):# p1.terminate()# 启动p1.start()time.sleep(2)print(OVER!)p1.terminate()exit()总结以上这些内容属于个人的一点经验之谈, 目的是希望能够给到大家一个参考的作用, 同时也期望大家能够多多支持脚本之家。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Excel宏批量调行高:VBA代码、AutoFit失效与实战技巧 2026/10/1 23:02:12

Excel宏批量调行高:VBA代码、AutoFit失效与实战技巧

做Excel的人,十有八九被行高整过。表格一长,内容一多,手动拖行高、双击调自适应、一行一行地折腾,半天就耗进去了。我就是为了省这点手工活,才正儿八经开始用Excel宏来处理行高,一套VBA代码跑下来&#xff…

阅读更多 →
从适老化到智老化:智慧养老方案的核心技术与落地实战 2026/10/1 23:02:06

从适老化到智老化:智慧养老方案的核心技术与落地实战

1. 从“适老化”到“智老化”:这一仗打的是“主动”二字做了这么多年养老项目,我越来越觉得行业内有个词被讲坏了——“适老化改造”。一提适老化,大家脑子里全是防滑地砖、马桶边扶手、走廊夜灯、浴室洗澡凳这些。这些有没有用?有…

阅读更多 →
AI论文合规审查:从查重到AI痕迹检测的实用指南 2026/10/1 23:02:06

AI论文合规审查:从查重到AI痕迹检测的实用指南

1. 先搞清楚:论文“合规”到底卡在哪些地方,怎么用AI拆解痛点前几天半夜,一个已经毕业三年的学生突然给我发来大段微信语音。她当时正在读在职硕士,论文初稿被导师打回来,批注里密密麻麻写满了“文献引用格式不统一”“…

阅读更多 →
SpringBoot+Vue前后端分离物资管理系统源码详解与部署实践 2026/10/1 23:02:05

SpringBoot+Vue前后端分离物资管理系统源码详解与部署实践

前几天把一套物资综合管理系统重新整理了一遍,从后端接口到前端页面再到数据库脚本,全部跑通之后打包成了一份可以直接运行的源码。这套东西不是那种只有几个空壳页面的演示项目,而是把企业里物资管理的真实流程都做了进去:物资分…

阅读更多 →
移动通信课后答案高效使用指南:版本匹配、可信度检查与避坑方法 2026/10/1 23:02:05

移动通信课后答案高效使用指南:版本匹配、可信度检查与避坑方法

简介:《移动通信课后答案.pdf》是通信工程及相关专业学生复习备考的实用文档资料,涵盖移动通信特点、蜂窝式发展历程(1G/2G/3G)、多普勒频移计算、QPSK/8PSK带宽效率等典型思考题与习题解析,适合正在学习移动通信原理、…

阅读更多 →
手写模拟实现STL list:迭代器设计、构造与生命周期管理 2026/10/1 23:01:58

手写模拟实现STL list:迭代器设计、构造与生命周期管理

写C代码这些年,我越来越觉得一个观点是对的:STL用过一万遍,不如亲手实现一遍。尤其是list容器,很多人简历写着“熟练使用STL”,能背出list是双向链表、支持O(1)头尾插入,但真到了面试环节被问到“list的迭代…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉