首页 > 技术文章 > 继承Process类,run函数的简单使用

zhangboblogs 2018-03-22 14:24 原文

#定义一个类 继承Process类
from multiprocessing import Process
import os
import time
class Download(Process):
    def __init__(self,interval):
        Process.__init__(self)
        self.interval = interval

    def run(self):
        t_start = time.time()
        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("当前程序的进程id: (%s)"%os.getpid())
    #调用Download函数 p就是生成的一个子进程 2传给init魔术方法
    #每次实例化的时候就相当于实例化了一个进程
    p = Download(2)
    p.start()
    #一直阻塞到子进程执行完 才开始执行主进程 实现进程同步
    #判断是否进程是否还在执行 True or False
    print(p.is_alive())
    p.join(2)
    if p.is_alive() == True:
        #等待子进程2秒 过时立即终止子进程p
        p.terminate()
    print(p.is_alive())
    t_stop = time.time()
    print("(%s)主进程执行结束,耗时%f秒" % (os.getpid(), t_stop - t_start))

 

推荐阅读