zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    Java第9次作业--接口及接口回调
    Java第8次作业--继承
    软件工程第三次作业——关于软件质量保障初探
    Java第7次作业--访问权限、对象使用
    Java第6次作业--static关键字、对象
    Java第5次作业--对象的创建与使用
    20194629 自动生成四则运算题第一版报告
    软件工程第一次作业
    今天开通博客啦!
    1170. Compare Strings by Frequency of the Smallest Character
  • 原文地址:https://www.cnblogs.com/xudj/p/10310529.html
Copyright © 2011-2022 走看看