zoukankan      html  css  js  c++  java
  • 使用Process子类创建进程

    #_author:来童星
    #date:2019/12/17
    # 使用Process子类创建进程
    from multiprocessing import Process
    import time
    import os
    #继承Process类
    class SubProcess(Process):
    #由于Process类本身也有__init__初始化方法,这个子类相当于重写了父类的这个方法
    def __init__(self,inteval,name=''):# 注意name要有默认值
    Process.__init__(self)
    # super(SubProcess, self).__init__()
    self.inteval=inteval
    if name:
    self.name=name
    #重写了Process类的run()方法
    def run(self):
    print('子进程(%s)开始执行,父进程为(%s)' % (os.getpid(), os.getppid()))
    t_start = time.time()
    time.sleep(self.i)
    t_end = time.time()
    print("子进程(%s)执行时间为'%0.2f'秒" % (os.getpgid(), t_end - t_start))

    if __name__=='__main__':
    print('-------父进程开始执行-------')
    print('父进程PID:%s'%os.getppid())
    p1=SubProcess(inteval=1,name='mrsoft')# 实例化进程p1
    p2=SubProcess(inteval=2)# 实例化进程p2
    p1.start()
    p2.start()
    # 同时父进程仍然往下执行,如果p2进程还在执行,将会返回True
    print("p1.is_alive=%s"%p1.is_alive())
    print("p2.is_alive=%s"%p2.is_alive())
    #输出p1,p2进程的别名和pid
    print("p1.name=%s"%p1.name)
    print('p1.pid=%s'%p1.pid)
    print("p2.name=%s"%p2.name)
    print('p2.pid=%s'%p2.pid)
    print('-------等待子进程-------')
    p1.join()
    p2.join()
    print('-------父进程执行结束-------')
    运行结果:
    -------父进程开始执行-------
    父进程PID:5580
    p1.is_alive=True
    p2.is_alive=True
    p1.name=mrsoft
    p1.pid=4044
    p2.name=SubProcess-2
    p2.pid=10196
    -------等待子进程-------
    -------父进程执行结束-------
  • 相关阅读:
    centos安装libreoffice
    世界,你好!
    4.闭包函数
    3.回调函数
    1内存地址
    2.函数递归
    1.字典
    nonlocal可以修改外层函数变量
    单例模式(Singleton)示例源码
    大家来说说自己的WEB开发工具好吗?
  • 原文地址:https://www.cnblogs.com/startl/p/12054035.html
Copyright © 2011-2022 走看看