python自旋锁和互斥锁和读写锁

自旋锁

while 抢锁(lock) == 没抢到:
	print('没抢到')

自旋锁只要没抢到锁,不断地重试。

互斥锁

while 抢锁(lock) == 没抢到:
	本线程先沉睡当锁的状态改变再唤醒(lock)

当去抢不到锁,而锁的状态没改变时,把CPU让出来,让别的线程先执行。由于需要 [锁的状态改变时再唤醒] 也就需要操作系统的帮助

读写锁

复数读者可以同时读,写者要求与任何人互斥

void 以读者身份加锁(rwlock){
	加锁(rwlock.保护当前住着数量的锁)
	rwlock.当前读者数量 += 1;
	if (rwlock.当前读者数量 == 1)
		加锁(rwlock.保护写操作的锁)
}

with语句(python)

尝试打开文件,同时自带处理无法打开的情况。
with 后面加上 lock(),当with代码块由于特殊原因退出时,锁也会自动释放。

参考链接

参考来源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值