join是让主进程等待子进程代码运行结束之后,再继续运行。不影响其他子进程的执行
1. join方法演示
from multiprocessing import Process
import time
def task(name, n):
print('%s is running'%name)
time.sleep(n)
print('%s is over'%name)
if __name__ == '__main__':
p_list = []
for i in range(1, 4):
p = Process(target=task, args=('子进程%s'%i, i))
p.start()
p_list.append(p)
for p in p_list:
p.join()
print('主', time.time() - start_time)
2. 进程数据之间是相互隔离
演示:
from multiprocessing import Process
money = 100
def task():
global money # 局部全局修改
money = 666
print('子',money)
if __name__ == '__main__':
p = Process(target=task)
p.start()
p.join()
print(money)