开启子进程的方式
方式一
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('主进程/父进程')
方式一多个子进程
from multiprocessing import Process
import time
def task(x):
print(f'子进程{x} start')
time.sleep(2)
print(f'子进程{x} end')
if __name__ == '__main__':
p = Process(target=task,args=('rocky',))
p2 = Process(target=task,args=('nick',))
p.start() # 告诉操作系统我要开子进程,告诉完了这行代码就算执行完了,接着往下走,具体操作系统什么时候开子,开多长时间跟你没关系。
p2.start() # 告诉操作系统我要开子进程,告诉完了这行代码就算执行完了,接着往下走,具体操作系统什么时候开子,开多长时间跟你没关系。
time.sleep(5)
print('主进程/父进程')
方式二
from multiprocessing import Process
import time
class Test(Process):
def __init__(self,name):
super().__init__()
self.name=name
def run(self):
print(f'子进程姓名是{self.name} start')
time.sleep(2)
print('子进程 end')
if __name__ == '__main__':
p=Test('nick')
p.start()# 向操作系统 发送开启子进程的请求
print('主进程')
验证进程的内存空间隔离
from multiprocessing import Process
import time
x=0
def aaa():
global x
x=100
print(f'子进程的x修改为了{x}')
if __name__ == '__main__':
p=Process(target=aaa)
p.start()
time.sleep(5)
print(x)