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


