有限的可重入读写锁
rwrlock的Python项目详细描述
这是rwrlock又一个python可重入rw锁
目标
- 使rentrant读写锁与不可重入相对
- 在一个线程中,实际上可以获得多个读锁,只有堆栈中的第一个执行锁重引用计数
- 在restoronecount中可以再次获得多个restoreference锁
- 在一个线程中,如果你想要一个读锁和一个写锁,它的作用就像是获得了读锁,但保持了写锁
- 在一个线程中,如果你有一个读锁并想要一个写锁读锁被丢弃一个写锁获取。但是当write被释放时,读锁被重新约束。如果不小心使用,这可能会导致读取一致性问题。在
这并不实现读写器之间的优先级
Usage:
from rwrlock import RWRLock
my_obj_rwlock = RWRLock()
# When reading from my_obj:
with my_obj_rwlock.r_locked():
do_read_only_things_with(my_obj)
# promote to a write lock
with my_obj_rwlock.w_locked():
mutate(my_obj)
# When writing to my_obj:
with my_obj_rwlock.w_locked():
mutate(my_obj)
# ok do to do read things as has a write lock
with my_obj_rwlock.r_locked():
do_read_only_things_with(my_obj)
- 项目
标签: