并发编程-多进程
发布时间:2021-01-08 06:44:09 所属栏目:系统 来源:网络整理
导读:一.进程 新进程的创建都是由一个 已经存在的进程 执行了一个 用于创建进程的系统调用 而创建的。 1.在UNIX中:fork会创建一个与父进程一摸一样的副本 2.在Windows:系统调用CreateProcess创建进程 进程的状态 程序遇到IO操作(Input、output),会阻塞,IO完成
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() (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |