zoukankan      html  css  js  c++  java
  • 开启子进程的两种方法

    开启子进程的方法一、

    # -*- coding: utf-8 -*-
    
    from multiprocessing import Process
    
    import time
    
    
    def task(name):
        print('%s is running' % name)
        time.sleep(3)
        print('over%s' % name)
    
    
    # 注意,在windows系统中, 创建进程会将代码以模块方式从头到尾加载一遍
    # 强调函数名一旦加括号,执行优先级最高
    # 创建进程在windows系统中一定要写在 if __name__ == '__main__': 否则会循环导入
    if __name__ == '__main__':
        p1 = Process(target=task, args=('qzk',))  # 这句话只是实例化的Process 的一个方法
        p1.start()  # 告诉操作系统创建一个进程,这只是告诉操作系统需要创建进程,什么时候创建,创建哪一个不知道
        p1.join()  # 主进程等待子进程结束才继续运行,其作用仅仅是让主进程等待子进程,不会影响子进程的进行
        print('主进程')
    

      开启子进程的方式二、

    """
    方式二、
        创建一个继承Process的类,该类里面一定有一个run方法,实例化过程中 __init__()中为了防止数据属性与父类的重复导致名称空间问题,
        需要在init方法中继承父类的init super().__init__()再 self.name = name
    """
    from multiprocessing import Process
    import time
    
    
    class MyProcess(Process):
        def __init__(self, name):
            super().__init__()
            self.name = name
        
        def run(self):
            print('%s is running' % self.name)
            time.sleep(2)
            print('%s is end' % self.name)
    
    
    if __name__ == '__main__':
        obj = MyProcess('egon')  # 类实例化过程创建一个进程对象
        obj.start()  # .start() 是调用start方法,告诉操作系统去创建一个子进程
        time.sleep(3)
        print('主进程')
    

      

  • 相关阅读:
    (译)linux系统关于命令echo的15个例子
    linux之grep实例讲解
    linux grep练习
    (译)"usermod"命令使用完全指导---15个练习例程截图
    linux分区,文件系统,目录结构概述
    Linux 配置YUM
    Linux 强制安装rpm 包
    $LANG、$NLS_LANG 记录一下
    Oracle性能诊断艺术-相关脚本说明
    datafile相关(add、rename、drop)
  • 原文地址:https://www.cnblogs.com/qianzhengkai/p/10821395.html
Copyright © 2011-2022 走看看