多线程锁、event和守护线程

本文详细介绍了Python中threading模块的互斥锁Lock和BoundedSemaphore信号量,展示了如何在多线程中使用它们进行同步控制,以及event对象在控制子线程阻塞的应用。此外,还讲解了守护线程的概念及其设置方法。
摘要由CSDN通过智能技术生成

互斥锁

1、lock=threading.Lock() 只允许一个线程运行
2、semaphore=threading.BoundedSemaphore(5) 最多允许同时运行5个进程

def test():
	# 在子线程中使用锁
	lock.acquire()
	print()
	lock.release()

	semaphore.acquire()
	print()
	semaphore.release()
lock=threading.Lock() #只允许一个线程运行
semaphore=threading.BoundedSemaphore(5) # 最多允许同时运行5个进程
t1=threading.Thread(target=teat)

event

多线程event的作用:一个子线程中设置event状态,另一个子线程判断event状态来控制该子线程是否堵塞
event.set()和event.clear()控制event状态
event.is_set()判断event状态,如果处于event.clear()状态,子线程设置堵塞event.wait

守护线程

设置守护线程之后,当主线程结束时,子线程也将立即结束,不再执行。
为了让设置了守护线程的子线程完全执行需要加上join()让主线程等待子线程执行结束

t=threading.Thread(target=test)
t.setDaemon(True)   #把子进程设置为守护线程,必须在start()之前设置
t.start()
t.join()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值