from multiprocessing import Process import time def task(): print('进程 start') time.sleep(2) print('进程 end') if __name__ == '__main__':#当开启子进程的时候,执行main内的代码 # 不会出现像递归同样的方式,一直建立子进程,在main内只会建立一个子进程 p = Process(target=task)#开子进程 申请新的内存空间 把父进程的全部代码完整拷贝一份过去 p.start()#告诉操做系统要开启子进程 time.sleep(3) print('主进程') ############### 进程 start 进程 end 主进程
from multiprocessing import Process import time def task(x): print(f'子进程{x}-————>start') time.sleep(2) print(f'进程{x}-————>end') if __name__ == '__main__':#当开启子进程的时候,执行main内的代码 # 不会出现像递归同样的方式,一直建立子进程,在main内只会建立一个子进程 p1 = Process(target=task,args=('ocean',))#开子进程 申请新的内存空间 把父进程的全部代码完整拷贝一份过去 p2 = Process(target=task,args=('sky',)) p1.start() p2.start() time.sleep(2) print('主进程') ################# 子进程ocean-————>start 子进程sky-————>start 主进程 进程ocean-————>end 进程sky-————>end
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(1) print(f'子进程end') if __name__ == '__main__':#当开启子进程的时候,执行main内的代码 # 不会出现像递归同样的方式,一直建立子进程,在main内只会建立一个子进程 p = Test('女')#开子进程 申请新的内存空间 把父进程的全部代码完整拷贝一份过去 p.start() print('主进程') ############################## 主进程 子进程的性别是女------>start 子进程end
from multiprocessing import Process import time x = 0 def task(): global x x = 100 print('子进程的x修改成{}'.format(x)) if __name__ == '__main__': p = Process(target=task) p.start() time.sleep(3) print(x) ################# 子进程的x修改成100 0
但凡是硬件,都须要有操做系统去管理,只要有操做系统,就有进程的概念,就须要有建立进程的方式,一些操做系统只为一个应用程序设计,好比微波炉中的控制器,一旦启动微波炉,全部的进程都已经存在。linux
而对于通用系统(跑不少应用程序),须要有系统运行过程当中建立或撤销进程的能力,主要分为4中形式建立新的进程:nginx
不管哪种,新进程的建立都是由一个已经存在的进程执行了一个用于建立进程的系统调用而建立的。web
关于建立子进程,UNIX和Windows:shell