• Python--day37--多进程


    1,创建多进程(父进程和子进程)

     1 import os
     2 import time
     3 #多进程都要导入multiprocessing
     4 from multiprocessing import Process
     5 
     6 def func(args, args2):
     7     print(args, args2)
     8     time.sleep(1)
     9     print('子进程:', os.getpid())
    10     print('子进程的父进程:', os.getpid())
    11     print(12345)
    12 
    13 if __name__ == '__main__':
    14     #args是一个元组,传一个参数的时候要在后面加逗号,如args=(54321,)
    15     p = Process(target = func, args=('参数','参数2'))    #注册
    16     #p是一个进程对象,还没有启动进程
    17     p.start()   #开启了一个子进程
    18     print('*'*10)
    19     print('父进程:', os.getpid())  #查看当前进程的进程号
    20     print('父进程的父进程:', os.getppid())  #查看当前进程的父进程的进程号

    运行结果:

    2、进程的生命周期:

    3,多个进程同时开始:

     1 import time
     2 from multiprocessing import Process
     3 
     4 def func(arg1,arg2):
     5     print('*'*arg1)
     6     time.sleep(5)
     7     print('*'*arg2)
     8 
     9 if __name__ == '__main__':
    10     p = Process(target=func,args=(10,20))
    11     p.start()
    12     p1 = Process(target=func, args=(10, 20))
    13     p1.start()
    14     p2 = Process(target=func, args=(10, 20))
    15     p2.start()
    16     p3 = Process(target=func, args=(10, 20))
    17     p3.start()

    运行结果:

     4,开启多进程的第二种方法:

      #自定义类 继承Precess类
      #必须事项一个run方法,run方法中是在子进程中执行的代码

      例1:

     1 import os
     2 from multiprocessing import Process
     3 
     4 class MyProcess(Process):
     5     def run(self):
     6         print(os.getpid())
     7 
     8 if __name__ == '__main__':
     9     print('主 :', os.getpid())
    10     p1 = MyProcess()
    11     p1.start()
    12     p2 = MyProcess()
    13     p2.start()
    14 
    15 #自定义类 继承Precess类
    16 #必须事项一个run方法,run方法中是在子进程中执行的代码

       例2:

     1 import os
     2 from multiprocessing import Process
     3 
     4 class MyProcess(Process):
     5     def __init__(self,arg1,arg2):
     6         super().__init__()
     7         self.arg1 = arg1
     8         self.arg2 = arg2
     9 
    10     def run(self):
    11         print(self.pid)
    12         print(self.name)
    13         print(self.arg1)
    14         print(self.arg2)
    15 
    16 
    17 if __name__ == '__main__':
    18     # print('主 :', os.getpid())
    19     #实例化:类名跟括号
    20     p1 = MyProcess(1,2)
    21     p1.start()
    22     p2 = MyProcess(3,4)
    23     p2.start()
  • 相关阅读:
    php socket 发送HTTP请求 POST json
    登录令牌 Token 介绍
    如何打开rdb文件
    Web登录其实没那么简单
    爆款小程序是如何诞生的?
    如何在小程序上增加音视频?
    拒绝“割韭菜”— 谈谈区块链正经的商用场景!
    想知道微信怎么做指纹支付开发?看这里!
    游戏安全有多重要?——GAME-TECH游戏开发者技术沙龙
    嘿,OCR文字识别了解下!
  • 原文地址:https://www.cnblogs.com/xudj/p/10310529.html
Copyright © 2020-2023  润新知