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对象的其他方法或属性

posted @ 2017-06-26 18:23  昂达达  阅读(133)  评论(0编辑  收藏  举报