• Python mutilprocess模块之第二种创建进程方法--继承Process类


    '''
    创建新的进程的第二种方法:
    使用类的方式,可以自己定义一个类,继承Process类,每次实例化这个类的时候,
    就等于实例化一个进程对象

    '''
    from multiprocessing import Process
    import os, time


    # 定义一个类,继承Process类
    class Download(Process):
    def __init__(self,interval):#这里重载父类__init__方法的原因是对象要传个参数,与下面run方法的执行没有关系
    Process.__init__(self)
    self.interval=interval#参数所对应的属性

    # 重写Process类中的run()方法
    def run(self):
    # 开启这个进程所要执行的代码
    t_start=time.time()
    # time.sleep(3) # 阻塞的另一种实现形式
    print('开启进程:%s 进行下载操作' % os.getpid())
    # if kwargs['device'] == 'iphoneX':
    # path = 'http://www.langlang2017.com/iphoneX'
    # # print('下载%s对应的%s.%s' % (kwargs['device'], fileName, type))
    #print('下载:%s.%s.%s' % (path, fileName, type))
    print('子进程(%s)开始执行,父进程为(%s)' % (os.getpid(), os.getppid()))
    time.sleep(self.interval)
    t_stop=time.time()
    print('子进程(%s)执行结束,耗时%f秒'%(os.getpid(),t_stop-t_start))

    if __name__ == '__main__':
    t_start=time.time()
    print('当前进程(%s)' % os.getpid())
    p = Download(2)
    # 对于一个不包含target属性的Process类,
    # 执行start()方法,表示子进程就会运行类中的run()
    p.start()
    #p.join(10)
    time.sleep(10)#区分sleep与join()区别
    t_stop=time.time()

    print('主进程%s执行结束,耗时%f秒'%(os.getpid(),t_stop-t_start))
    /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/apple/PycharmProjects/stage4/createProcessSecondMethod/process06.py
    当前进程(10593)
    开启进程:10594 进行下载操作
    子进程(10594)开始执行,父进程为(10593)
    子进程(10594)执行结束,耗时2.000305秒
    主进程10593执行结束,耗时10.006700秒


    Process finished with exit code 0
    ---------------------
    作者:Arthur54271
    来源:CSDN
    原文:https://blog.csdn.net/zbrj12345/article/details/79743852
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    接口的设置
    总结一下《vue的使用》
    标准时间对象的转换
    类数组转换为数组
    异步函数
    vue中moudles的作用及使用方法
    es5数组的新方法
    React JSX
    React更新元素 基础
    React将某段文字插入到某个元素里
  • 原文地址:https://www.cnblogs.com/ExMan/p/10143737.html
Copyright © 2020-2023  润新知