zoukankan      html  css  js  c++  java
  • multiprocessing多进程(31-04)创建进程的两种方式

    一个进程可以寄生多个线程。

    CPU核数与进程个数是统一的,

    若进程多于核数,那么只有等待上一进程执行完才能被执行。

    ------------------第一种进程创建方式------------------------

    from multiprocessing import Process
    import time  

    def A(name):
      time.sleep(1)
      print('haello', name, time.ctime())

    if __name__ == "__main__":
      p_list = []
      for i in range(3):    # 创建三个进程
        P = Process(target=A, args=('kay'))
        p_list.append(p)
        p.start()    # 准备进程,让CPU执行
      for p in p_list:
        p.join()  # 阻塞住,所以进程执行完才执行下面代码
      print('end')


     运行结果:

    hello kay Wed Sep 19 10:18:00 2018
    hello kay Wed Sep 19 10:18:00 2018
    hello kay Wed Sep 19 10:18:00 2018
    end

    ---------------------------第二种进程创建方式(类式调用)---------------------------------------

    from multiprocessing import Process
    class MyProcess(Process):    # 继承Process方法
      def __init__(self, name):
        super(MyProcess, self).__init__()  # 执行子类的__init__方法
        self.name = name        # 防止执行父类中的方法
      def run(self):
        time.sleep(1)
        print('hello', self.name, time.ctime())

    if __name__ == "__main__":

       p_list = []

       for i in range(3):

          p = MyProcess('kay')

          p.start()

          p_list.append(p)

       for p in p_list:

          p.join()  # 阻塞住

        print('end')

        

    运行结果:

    hello kay Wed Sep 19 11:38:40 2018
    hello kay Wed Sep 19 11:38:40 2018
    hello kay Wed Sep 19 11:38:40 2018
    end

    在父类中也有封装name,如果不重新封装,会默认执行父类封装好的,而父类封装好的name是显示当前进程号。

  • 相关阅读:
    巧用table的rules属性设置表格的边框掩饰。。。
    JS日期和时间
    onchange事件验证文本框格式,不正确光标返回原文本框,这个js怎么写?
    简易万用表
    在单片机中的空函数
    地感线圈的讲究
    全桥片
    这个当单片机程序怎么会不停的通过串口发数据,设置波特率为9600,但是串口软件接受数据不对(初学者,请高手指教)
    今天开博
    关于二极管
  • 原文地址:https://www.cnblogs.com/uncle-kay/p/9673828.html
Copyright © 2011-2022 走看看