详情描述:
递归锁是同步锁的一个升级版本,在同步锁的基础上可以做到连续重复使用多次acquire()后再重复使用多次release()的操作,但是一定要注意加锁次数和解锁次数必须一致,否则也将引发死锁现象。 下面是threading模块与递归锁提供的相关方法: 以下是递归锁的简单使用,下面这段操作如果使用同步锁则会发生死锁现象,但是递归锁不会: 由于threading.RLock()对象中实现了enter__()与__exit()方法,故我们可以使用with语句进行上下文管理形式的加锁解锁操作: 三:Condition() 条件锁 条件锁是在递归锁的基础上增加了能够暂停线程运行的功能。并且我们可以使用wait()与notify()来控制线程执行的个数。 注意:条件锁可以自由设定一次放行几个线程。 下面是threading模块与条件锁提供的相关方法: 下面这个案例会启动10个子线程,并且会立即将10个子线程设置为等待状态。 然后我们可以发送一个或者多个通知,来恢复被等待的子线程继续运行: with语句 由于threading.Condition()对象中实现了enter__()与__exit()方法,故我们可以使用with语句进行上下文管理形式的加锁解锁操作:二:RLock() 递归锁
使用方式
with语句
基本介绍
使用方式
联系人 | 黄福利 |
---|