python_day9 其他方法和属性
=====================part2: Process对象的其他方法或属性
-------------------------join----------------------
正常情况下,主进程 制造了子进程后,自己会继续执行,但是 使用join后, 主进程 会 等待子进程结束,再继续执行
from multiprocessing import Process
import os
import time
def GO(name):
print('is go',name)
time.sleep(2)
print('is end',name)
if __name__ == '__main__':
p1=Process(target=GO,args=('la1',))
p2=Process(target=GO,args=('la2',))
p3=Process(target=GO,args=('la3',))
p4=Process(target=GO,args=('la4',))
p_l=[p1,p2,p3,p4]
for p in p_l:
p.start()
for p in p_l:
p.join()
print('主进程')
最后 才会打印 主进程
===========================daemon 守护进程=====================
from multiprocessing import Process
import os
import time
def GO(name):
print('is go',name)
time.sleep(2)
print('is end',name)
if __name__ == '__main__':
p1=Process(target=GO,args=('la1',))
p2=Process(target=GO,args=('la2',))
p3=Process(target=GO,args=('la3',))
p4=Process(target=GO,args=('la4',))
p_l=[p1,p2,p3,p4]
for p in p_l:
p.daemon=True
p.start()
# for p in p_l:
# p.join()
print('主进')
设置了守护进程后,主进程将不再等待 子进程结束, 自己就结束程序了,子进程切换为后台方式 跑
还可以打印 print(p.name) print(p.pid) 获取pid 和 名称
p=Process(target=GO,args=('la1',),name='xxxx') 定义name
print(p.is_alive()) 查看进程是否存活
=====================part2: Process对象的其他方法或属性