设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 系统 > 正文

并发编程-多进程(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站长网)

网友评论
推荐文章
    热点阅读