• 2子进程的创建与启动


    """方法一:子进程的创建与启动之直接实例化Process"""


    """
    标准库模块multiprocessing提供了一个类对象Process,用于表示进程
    使用类对象Process创建并启动子进程的第1种方式为:
    1、根据类对象Process创建进程实例对象
    2、调用进程实例对象方法start()启动进程
    调用方法start后,会自动调用run(),方法run会自动调用参数target指定的函数
    """
    import time
    from multiprocessing import Process, current_process

    def do_sth(arg1, arg2):
    print('子进程启动(%d--%s)' % (current_process().pid, current_process().name))
    print('arg1=%d, arg2=%d' %(arg1, arg2))
    print('子进程结束(%d--%s)' % (current_process().pid, current_process().name))

    def main():
    """父进程"""
    print('父进程启动(%d--%s)' % (current_process().pid, current_process().name))

    process = Process(target=do_sth, args=(5, 8))
    process.start()

    time.sleep(2)

    print('父进程结束(%d--%s)'% (current_process().pid, current_process().name))

    if __name__ == '__main__':
    main()

    #####################################################################################################

    """方法二:子进程的创建与启动之继承Proecss"""


    """
    使用类对象Process创建并启动子进程的第2种方式:
    1、自定义继承Proce的类对象,重写方法__init__()和run()
    2、根据自定义的类对象创建进程实例对象
    3、调用进程实例对象的方法start()启动进程
    这里会自动调用重写后的run()方法
    """

    from multiprocessing import Process, current_process
    import time

    class MyProcess(Process):
    def __init__(self, name, args):
    super().__init__(name=name)
    self.args = args

    def run(self):
    print('子进程启动(%d--%s)' % (current_process().pid, current_process().name))
    print('arg1=%d, arg2=%d' % self.args)
    print('子进程结束(%d--%s)' % (current_process().pid, current_process().name))

    def main():
    print('父进程启动(%d--%s)' % (current_process().pid, current_process().name))

    mp = MyProcess(name='myprocess', args=(5,8))
    mp.start()

    time.sleep(2)

    print('父进程结束(%d--%s)' % (current_process().pid, current_process().name))

    if __name__ == '__main__':
    main()
  • 相关阅读:
    New Concept English Two 20 52
    timer Compliant Controller project (3)--bom and sch
    New Concept English Two 19 49
    CAM350对比两个gerber之间的差异
    New Concept English Two 18 46
    timer Compliant Controller project (2)--Project Demonstration
    New Concept English Two 17 43
    第15.7节 PyQt入门学习:PyQt5应用构建详细过程介绍
    第15.6节 PyQt5安装与配置
    第15.5节 PyQt的历史沿革介绍
  • 原文地址:https://www.cnblogs.com/sruzzg/p/12991690.html
Copyright © 2020-2023  润新知