开启子进程的两种方式

Posted nanjo4373977

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开启子进程的两种方式相关的知识,希望对你有一定的参考价值。


#方式一:
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("主进程")

 

以上是关于开启子进程的两种方式的主要内容,如果未能解决你的问题,请参考以下文章

创建并开启子进程的两种方式

进程理论以及开启子进程的两种方式

创建并开启子进程的两种方式2

开启子进程的两种方式,孤儿进程与僵尸进程,守护进程,互斥锁,IPC机制,生产者与消费者模型

开启进程的两种方式

多进程之开启进程的两种方式