有限的可重入读写锁

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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务