码迷,mamicode.com
首页 > 系统相关 > 详细

开启子进程的两种方式

时间:2020-01-31 15:52:27      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:有用   自己   target   父类   定义   nbsp   start   span   done   


#方式一:
from multiprocessing import Process  # 开启子进程
import time

def task(name):
    print("%s is running" % name)
    time.sleep(3)
    print("%s is done" % name)

if __name__ == "__main__":
    #Process(target=task,kwargs={"name":"子进程1"}) # 字典的方式传参
    p = Process(target=task,args=("子进程1",)) # 实例化task得到对象p,元组的方式传参
    p.start() # 仅仅只是给操作系统发送了一个信号,即操作系统申请内存空间,把父进程的地址空间的数据拷贝给子进程,
              # 作为子进程运行的初始状态,开始运行之后再去执行task函数的功能
    print("主进程")

#方式二:
from multiprocessing import Process  # 开启子进程
import time
class Myprocess(Process):
    def __init__(self,name):
        super().__init__()  # 如果有用到父类的功能需要重用一下父类的init功能
        self.name = name  # 这里再定义自己的功能

    def run(self):  # 固定函数名run
        print("%s is running" % self.name)
        time.sleep(3)
        print("%s is done" % self.name)

if __name__ == "__main__":
    p = Myprocess("子进程1")
    p.start()  # 默认调用的是Myprocess下面的run方法

    print("主进程")

 

开启子进程的两种方式

标签:有用   自己   target   父类   定义   nbsp   start   span   done   

原文地址:https://www.cnblogs.com/nanjo4373977/p/12245527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!