并发编程-多进程(2)
发布时间:2021-01-07 09:21 所属栏目:52 来源:网络整理
导读:p.daemon = True,必须在p.start()之前设置,因为一旦开启子进程,再设置也没用 from multiprocessing import Processimport timedef task(name): print(f‘{name} is running‘) time.sleep(2) print(f‘{name} is
p.daemon = True,必须在p.start()之前设置,因为一旦开启子进程,再设置也没用 from multiprocessing import Process import time def task(name): print(f‘{name} is running‘) time.sleep(2) print(f‘{name} is gone‘) if __name__ == ‘__main__‘: p = Process(target=task,)) # 创建一个进程对象 p.daemon = True # 将p子进程设置成守护进程,只要主进程结束,守护进程马上结束(print(‘===主‘)一打印完,主进程中没有要执行的任务了,守护进程就死掉) p.start() time.sleep(1) print(‘===主‘)示例1 from multiprocessing import Process from threading import Thread import time def foo(): print(123) time.sleep(2) print("end123") def bar(): print(456) time.sleep(3) print("end456") if __name__ == ‘__main__‘: p1=Process(target=foo) p2=Process(target=bar) p1.daemon=True p1.start() p2.start() print("main-------") #打印完这句代码守护进程也跟着完了,不是等到整个流程结束守护进程才完 ‘‘‘ main------- 456 end456 ‘‘‘示例2 三.进程同步(互斥锁)强调:必须是lock.acquire()一次,然后 lock.release()释放一次,才能继续lock.acquire(),不能连续的lock.acquire() (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读