子进程

开启子进程的方式

方式一、

from multiprocessing import Process
import time



def task():
    print('进程 start')
    time.sleep(2)
    print('进程 end')


if __name__ == '__main__':
    p = Process(target=task)
    p.start() # 告诉操作系统我要开子进程,告诉完了这行代码就算执行完了,接着往下走,具体操作系统什么时候开子,开多长时间跟你没关系。
    time.sleep(5)
    print('主进程/父进程')

首先介绍一下新模块 multiprocessing,导入这个模块里的Process类

首先写一个方法,在这个方法里面写上你主要的逻辑业务。

然后下面要用if __name__ == '__main__':,在这个里面开启子进程,为什么用这个,因为如果不用的话,就会无限循环开启子进程。

在里面p = Process(target=task) 然后p.start() 就会执行方法里的代码了。

方法二、

from multiprocessing import Process
import time

class Test(Process):
    def __init__(self,sex):
        super().__init__()
        self.sex = sex

    def run(self):
        print(f'子进程的性别是{self.sex} start')
        time.sleep(2)
        print('子进程 end')
if __name__ == '__main__':
    p = Test('女')
    p.start() # 向操作系统 发送开启子进程的请求
    print('主进程')

这个就是以类的形式开启。其实是一个道理的,不过一定要在类里面重写run方法。他执行的就是run里面的方法。

进程的内存空间间隔

各个进程之间互不干扰,变量也不共享。

posted @ 2019-09-12 22:35  chanyuli  阅读(243)  评论(0编辑  收藏  举报