进程是系统分配资源的最小单位,进程间相互独立,在一个进程中无法访问其他进程中的变量,即使是全局变量或者参数,都会在进程中创建一个副本,就相当于对其做了深复制;
多进程可以提高多任务执行的效率(类似一个工厂,有多个车间,每个车间都生产同一类产品,即使一个车间出问题,但是其他车间不受影响可以接着工作);
多进程实现示例:
from multiprocessing import Process
import time
import os
def fn(num):
for i in range(10):
print(str(num).center(20, "-"), os.getpid())
# os.getpid() 用来获取进程的pid
time.sleep(num)
if __name__ == '__main__':
p1 = Process(target=fn, args=(1,))
p2 = Process(target=fn, args=(2,))
p1.start() # 开启多进程,不能使用run,用run就是单进程了
p2.start()
p1.join() # join的话,主进程会等待子进程执行完,主进程再执行,一般我们的主要逻辑是在子进程中实现的
p2.join()
print("主进程结束~~")