zoukankan      html  css  js  c++  java
  • python网编_通过面向对象开启子进程

    直接上代码:

    import os
    from multiprocessing import Process
    
    class MyProcess(Process):  # 这里创建一个类 继承Process
        def run(self):  # 必须写一个run方法
            print(os.getpid())
    
    
    if __name__ == '__main__':
        p = MyProcess()  # 用类进行实例化一个子进程③
        p.start()  # 这里启动子进程
        print('',os.getpid())

    这就通过面向对象开启了一个子进程,那么问题来了:

    通过面向对象的方式启动子进程,如何传递参数呢?(join一定能用,有机会再证明)
    如果直接在实例化③的过程中 p = MyProcess('参数') 这里传参会通过__init__(self):
    那机智的我就知道了啦 在MyProcess类中写一个__init__(self,name)方法,不就万事大吉了么,下班吃饭...
    太天真,凡事看霸特:Process中的__init__有很大作用我们绝对不能丢失。
      so,super().__init()的作用就体现出来了
    看下面:
    import os
    from multiprocessing import Process
    class MyProcess(Process):
        def __init__(self,name):  # 这里通过__init__传参给self
            super().__init__()  # 这里通super()执行父类中的__init__,就是Process类中的__init__,perfect!
            self.name = name
    
        def run(self):
            print(os.getpid(),self.name)
    
    
    if __name__ == '__main__':
        p = MyProcess('carrie')  # 这里实例化的时候传参
        p.start()
        p.join()
        print('',os.getpid())
  • 相关阅读:
    P1265 公路修建 最小生成树
    P1991 无线通讯网 最小生成树
    Stock Chase 拓扑
    Rank of Tetris 拓扑排序+并查集
    P1169 [ZJOI2007]棋盘制作 DP悬线法
    P4147 玉蟾宫 二维DP 悬线法
    P1341 无序字母对 欧拉回路
    P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm 记忆化搜索dfs
    BSTestRunner插件的用法.py
    Selenium
  • 原文地址:https://www.cnblogs.com/gzying-01/p/10371477.html
Copyright © 2011-2022 走看看