Python使用进程过程模块管理资源

  

进程过程是对各种资源管理的集合,包含对各种资源的调用,内存的管理,网络接口的调用;一个进程过程可以包含多个子进程,启动一个进程的时候会自动创建一个线程,进程里的第一个线程就是主线程(即python __name__==' __main__ ');

  

<强>进程过程模块
  

  

对于线程操作可以用螺纹模块,那么对于进程的创建python同样也提供了过程模块,创建进程时需要导入该模块,语法如下:

        #导入进程模块   从多处理导入过程   #创建进程   p=过程(集团=没有目标=None, name=None, arg游戏=(),kwargs={})      

参数介绍:

  

集团——参数未使用,默认值为没有;

  

目标——表示调用对象,即子进程要执行的任务(函数名字);

  

参数-子进程对应函数的参数,并且类型是元组元组;

  

kwargs -子进程对应函数的参数,并且类型是字典dict类型,如kwargs={“名称”:杰克,“年龄”:18};

  

名称——子进程名称;

  

返回值:返回进程实例对象,

  

<强>三。进过程程函数介绍
  

  

其实进程过程的函数和线程线程类似,具体如下:

  

1.开始()——启动进程;

  

2.终止()——强制终止进程,不会进行任何清理操作。如果该进程终止前,创建了子进程,那么该子进程在其强制结束后变为僵尸进程;如果该进程还保存了一个锁那么也将不会被释放,进而导致死锁,使用时,要注意;

  

3. is_alive()——判断某进程是否存活,存活返回真,否则假;

  

4.加入((超时))——主线程等待子线程终止.timeout为可选择超时时间,需要强调的是,p。加入只能加入住开始开启的进程,而不能加入住跑开启的进程;

  

5。守护进程——默认值为假,如果设置为真的,代表该进程为后台守护进程;当该进程的父进程终止时,该进程也随之终止,并且设置为真实后,该进程不能创建子进程,设置该属性必须在开始()之前,

  

6.的名字——进程名称;

  

7。pid -进程ID标识、pid值得注意的是:如果在开始函数之前获取pid默认为,因为进程还未创建,获取不到pid;

  

8。exitcode——进程运行时为无,如果为N,表示被信号N结束了;

  

9。authkey——进程身份验证,默认是由os.urandom()随机生成32字符的字符串。这个键的用途是设计涉及网络连接的底层进程间的通信提供安全性,这类连接只有在具有相同身份验证才能成功;

  

<强>进程过程使用
  

        # ! usr/bin/env python   # - * -编码:utf - 8 _ * -   ”“”   @Author:何以解忧   @Blog(个人博客地址):shuopython.com   @WeChat官方账户(微信公众号):猿说python   @Github: www.github.com      @File: python_process.py   @Time: 2019/12/21日月星辰      @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!   ”“”      从多处理导入过程         def people_info (* args, * * kwargs):   print (args, kwargs)            def main ():      #信息列表   list_info=[{“名称”:“zhangsan”,“高”:“175厘米”},   {" name ": " lisi”、“高度”:“155厘米”},   {" name ": " wangwu”、“高度”:“195厘米”},   {" name ":“莉齐”,“高”:“166厘米”},   {" name ": " wangba”、“高度”:“125厘米”},)      #创建进程   因为我在范围(5):   p=过程(目标=people_info args=(我),kwargs=list_info[我])   #设置为守护进程,必须设置在开始函数之前,否则会产生异常   #默认为假,即主进程会等待子进程结束之后才结束,   #如果设置为真的,主进程结束之后所有的子进程自动结束,不管子进程是否已经执行完所有任务   # p。守护进程=True      #启动进程   p.start ()      #获取进程pid,如果在开始函数之前获取pid,默认为,因为进程还没启动   打印(“进程过程pid=", p.pid)   #获取进程名字   打印(“进程过程name=", p.name)   #获取进程pid   打印(“进程过程exitcode=", p.exitcode)   if __name__==癬_main__”:   main ()      

输出结果:

        进程过程pid=2600   进程进程名称=处理   进程过程exitcode=没有   进程过程pid=4372   进程进程名称=步骤二   进程过程exitcode=没有   进程过程pid=14124   进程进程名称=过程3   进程过程exitcode=没有   进程过程pid=10920   name=Process-4进程过程   进程过程exitcode=没有   进程过程pid=4892   name=Process-5进程过程   进程过程exitcode=没有   (0){“名称”:“zhangsan”,“高”:“175厘米”}   (1){“名称”:“lisi”,“高”:“155厘米”}   (2){“名称”:“wangwu”,“高”:“195厘米”}   (3){“名称”:“莉齐”,“高”:“166厘米”}   (4){“名称”:“wangba”,“高”:“125厘米”}

Python使用进程过程模块管理资源