我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python process模块怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python process模块怎么用

今天小编给大家分享一下python process模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

process可以用于node和系统中已经存在的进程进行交互,创建工作子进程等,process模块是一个全局对象,允许你获得或者修改当前node进程的设置。

python process模块怎么用

process模块

process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建。

参数介绍:

Process(group=None, target=None, name=None, args=(), kwargs={})1 group——参数未使用,值始终为None2 target——表示调用对象,即子进程要执行的任务3 args——表示调用对象的位置参数元组,args=(1,2,'egon',)4 kwargs——表示调用对象的字典,kwargs={'name':'egon','age':18}5 name——为子进程的名称

方法介绍:

obj.start():启动进程,并调用该子进程中的obj.run()obj.run():进程启动时运行的方法,正是它去调用target指定的函数,我们自定义类的类中一定要实现该方法obj.terminate():强制终止进程obj,不会进行任何清理操作,如果obj创建了子进程,该子进程就成了僵尸进程,使用该方法需要特别小心这种情况。如果obj还保存了一个锁那么也将不会被释放,进而导致死锁obj.is_alive():如果obj仍然运行,返回Trueobj.join([timeout]):主线程等待obj终止(强调:是主线程处于等的状态,而obj是处于运行的状态)。timeout是可选的超时时间,需要强调的是,obj.join只能join住start开启的进程,而不能join住run开启的进程

属性介绍:

obj.daemon:默认值为False,如果设为True,代表obj为后台运行的守护进程,当obj的父进程终止时,obj也随之终止,并且设定为True后,obj不能创建自己的新进程,必须在obj.start()之前设置obj.name:进程的名称obj.pid:进程的pidobj.exitcode:进程在运行时为None、如果为–N,表示被信号N结束(了解即可)obj.authkey:进程的身份验证键,默认是由os.urandom()随机生成的32字符的字符串。这个键的用途是为涉及网络连接的底层进程间通信提供安全性,这类连接只有在具有相同的身份验证键时才能成功(了解即可)

1、在python中启动一个子进程

from multiprocessing import Processimport osdef func():   print('这是一个子进程——>进程号:', os.getpid(), '  主进程号:', os.getppid())if __name__ == '__main__':   print('这是主进程——>进程号:', os.getpid(), '  主进程号(pycharm):', os.getppid())   # 实例化一个子进程对象   obj = Process(target=func)   obj.start()     # 执行子进程对象   print('执行了完了主进程的内容')# 输出这是主进程——>进程号: 3100   主进程号(pycharm): 6748执行了完了主进程的内容这是一个子进程——>进程号: 2392   主进程号: 3100

2、给子进程传递参数

from multiprocessing import Processimport osdef func(name, age):   print('这是一个子进程——>进程号:', os.getpid(), '  主进程号:', os.getppid())   print(f'这是一个子进程——>我的名字是{name},今年{age}')if __name__ == '__main__':   print('这是主进程——>进程号:', os.getpid(), '  主进程号(pycharm):', os.getppid())   # 实例化一个子进程对象   obj = Process(target=func, args=('小杨', '18')) # args以元组的形式给子进程func函数传位置参数                              # kwargs以字典的形式给子进程func函数传关键字参数                              # kwargs={'name': '小杨', 'age': 18}   obj.start()     # 执行子进程对象   print('执行了完了主进程的内容')   # 输出这是主进程——>进程号: 11936   主进程号(pycharm): 3676执行了完了主进程的内容这是一个子进程——>进程号: 2996   主进程号: 11936这是一个子进程——>我的名字是小杨,今年18

3、同时开多个子进程

from multiprocessing import Processimport osdef func(name, age):   print(f'这是一个子进程——>进程号:{os.getpid()},主进程号:{os.getppid()},我的名字是{name},今年{age}')if __name__ == '__main__':   print('这是主进程——>进程号:', os.getpid(), '  主进程号(pycharm):', os.getppid())   count = [('小杨', 18), ('鲍勃', 20), ('艾伦', 55)]   for lis in count:       # 实例化一个子进程对象       obj = Process(target=func, args=lis)   # args以元组的形式给子进程func函数传位置参数       obj.start()     # 执行子进程对象   print('执行了完了主进程的内容')   # 输出这是主进程——>进程号: 12632   主进程号(pycharm): 9220执行了完了主进程的内容这是一个子进程——>进程号:10048,主进程号:12632,我的名字是小杨,今年18这是一个子进程——>进程号:16032,主进程号:12632,我的名字是鲍勃,今年20这是一个子进程——>进程号:12060,主进程号:12632,我的名字是艾伦,今年55

4、join的用法

obj.join([timeout]): 主进程等待子进程obj终止(强调:是主进程处于等的状态,而子进程obj是处于运行的状态)。timeout是可选的超时时间,需要强调的是,obj.join只能join住start开启的进程,而不能join住run开启的进程

多个进程同时运行(注意,子进程的执行顺序不是根据启动顺序决定的)

join——>属于同步阻塞:

同步:在做A事件的时候发起B事件,必须等待B事件结束后才能继续做A事件

阻塞:CPU不工作——>input accept recv recvfrom sleep connect……

start——>属于异步非阻塞:

异步:在做A事件的时候发起B事件,不用等待B事件结束就可以继续A事件

非阻塞:CPU在工作(非输入输出阶段I/O)

from multiprocessing import Processimport randomimport timedef mail(name, age):   count = random.random()   print(f'给{age}岁的{name}发了一封邮件!延迟{count}秒')   time.sleep(count)      # 模拟网络延迟   """   多个进程同时运行(注意,子进程的执行顺序不是根据启动顺序决定的)   """if __name__ == '__main__':   info_list = [('小杨', 18), ('鲍勃', 20), ('艾伦', 55)]   jo = []   for info in info_list:       obj = Process(target=mail, args=info)       obj.start()       jo.append(obj)   # 将所有的子进程全部放入jo列表,在循环join所有子进程,就能等待所有子进程结束后在做操作   for o in jo:       o.join()   # 所有的子进程结束的操作   print('全部发送完毕')   # 输出给20岁的鲍勃发了一封邮件!延迟0.19840279388911186秒给18岁的小杨发了一封邮件!延迟0.8891892863366903秒给55岁的艾伦发了一封邮件!延迟0.0434307277609951秒全部发送完毕

5、多进程之间的数据是否隔离

from multiprocessing import Processcount = 1def func():   global count   count += 1if __name__ == '__main__':   for i in range(10):       obj = Process(target=func)       obj.start()   print(count)        # ————>1 主进程的count没有被改变说明进程之间的数据时隔离的   # 输出1

6、为什么在Windows中Process()必须放到if *name* == ‘*main*‘:下

由于Windows没有fork,多处理模块启动一个新的Python进程并导入调用模块。

如果在导入时调用Process(),那么这将启动无限继承的新进程(或直到机器耗尽资源)。

这是隐藏对Process()内部调用的原,使用if name == ‘main‘:,这个if语句中的语句将不会在导入时被调用。

以上就是“python process模块怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python process模块怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python process模块怎么用

今天小编给大家分享一下python process模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。process可以
2023-06-27

python process模块的使用简介

目录process模块1、在python中启动一个子进程2、给子进程传递参数3、同时开多个子进程4、join的用法5、多进程之间的数据是否隔离6、为什么在Windows中Process()必须放到if __name__ == '__main
2022-06-02

Python中multiprocessing模块的Process类分析

这篇文章主要讲解了“Python中multiprocessing模块的Process类分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中multiprocessing模块的Pr
2023-06-17

Node.js的Process模块如何使用

这篇文章主要介绍了Node.js的Process模块如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js的Process模块如何使用文章都会有所收获,下面我们一起来看看吧。一、Process模块
2023-07-02

python怎么引用Python模块

本篇内容介绍了“python怎么引用Python模块”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  import语句  自定义模块可以采用
2023-06-02

Python time模块怎么用

本篇内容主要讲解“Python time模块怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python time模块怎么用”吧!在我们平常的代码中,经常需要和时间打交道。在Python中,
2023-06-27

Python怎么使用模块

这篇文章给大家分享的是有关Python怎么使用模块的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.1 导入模块import 模块名form 模块名import 功能名form 模块名 import *impor
2023-06-22

python beautifulsoup4模块怎么用

本篇内容主要讲解“python beautifulsoup4模块怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python beautifulsoup4模块怎么用”吧!一、Beautifu
2023-06-30

python中的sys模块和os模块怎么用

今天小编给大家分享一下python中的sys模块和os模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.sys模块
2023-06-29

Python中math模块和cmath模块怎么应用

这篇文章主要介绍了Python中math模块和cmath模块怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中math模块和cmath模块怎么应用文章都会有所收获,下面我们一起来看看吧。cma
2023-06-27

Python中的time模块和calendar模块怎么用

这篇文章将为大家详细讲解有关Python中的time模块和calendar模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在Python中对时间和日期的处理方式有很多,其中转换日期是最常见的一个功
2023-06-25

python中os模块和sys模块怎么使用

今天小编给大家分享一下python中os模块和sys模块怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、os模块o
2023-07-05

Python requests模块怎么使用

本文小编为大家详细介绍“Python requests模块怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python requests模块怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.准备工
2023-07-05

python webbrowser模块怎么使用

要使用Python的webbrowser模块,需要先导入该模块:```pythonimport webbrowser```然后可以使用webbrowser模块提供的函数来打开指定的URL或文件。下面是一些常用函数的示例:1. `webbro
2023-08-24

Python中random模块怎么用

这篇文章给大家分享的是有关Python中random模块怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.随机取小数:import randomprint(random.runiform(a,b)) #a-
2023-06-22

Python的Re模块怎么用

这篇文章主要介绍Python的Re模块怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、基础语法总结1.1、匹配单个字符a . d D w W s S [...] [^...]匹配单个字符(.)规则:匹配除换行
2023-06-17

Python的tempfile模块怎么用

这篇文章主要介绍“Python的tempfile模块怎么用”,在日常操作中,相信很多人在Python的tempfile模块怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python的tempfile模块
2023-06-29

Python中csv模块怎么用

这篇文章主要介绍了Python中csv模块怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、csv简介CSV (Comma Separated Values) ,即逗号
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录