进程的创建-Process⼦类

来源:互联网 发布:matlab2016b mac 编辑:程序博客网 时间:2024/06/05 14:06

from multiprocessing import ProcessP必须大写

import os

import time

 

classSubProcess(Process):

    """创建Process的子类"""

    def __init__(self, num, a):

        super(SubProcess, self).__init__() #执行父类Process默认的初始化方法,通过父类的方法,将子进程对象初始化好

        self.num = num

        self.a = a

 

    def run(self):

        """子进程要执行的代码"""

        print("子进程:pid=%d" % os.getpid())

        print("子进程:num=%d" % self.num)

        print("子进程:a=%d" % self.a)

        for i in range(10):

            print("子进程:hello")

            time.sleep(0.1)

 

 

def main():

    print("父进程:pid=%d" % os.getpid())

    p = SubProcess(100, 200)

    p.start()  #真正的创建出子进程,子进程可以开始执行代码

    print("父进程:hi")

    print("父进程:子进程的名字 %s" % p.name)

    print("父进程:子进程的pid %d" % p.pid)

    print("父进程:子进程的状态 %s" % p.is_alive())

    time.sleep(0.1)

 

   p.terminate()  #终止子进程的执行 存在延迟

    print("父进程:已经终止了子进程")

    print("父进程:子进程的状态 %s" % p.is_alive())

 

   p.join()  #回收子进程资源 阻塞

    print("父进程:已经回收了子进程")

    print("父进程:子进程的状态 %s" % p.is_alive())

    print("父进程:结束")

 

if __name__ == '__main__':

    main()