三个读写器问题的python实现。

readerwriterlock的Python项目详细描述


三个读写器问题的python实现。

它不仅实现了读写器问题,还兼容python锁接口,其中包括对超时的支持。

有关读者-作者问题背后的理论,请参阅Wikipedia

安装

安装pythonreaderwriterlock

python3 -m pip install readerwriterlock

用法

根据访问优先级需要初始化新锁,线程将使用该锁:

reader priorityaka first readers writers problem

from readerwriterlock import rwlock
a = rwlock.RWLockRead()

writer priorityaka second readers writers problem

from readerwriterlock import rwlock
a = rwlock.RWLockWrite()

fair priorityaka third readers writers problem

from readerwriterlock import rwlock
a = rwlock.RWLockFair()

pythonic用法示例

with a.gen_rlock():
      #Read stuff
with a.gen_wlock():
      #Write stuff

高级用法示例

b = a.gen_wlock()
if b.acquire(blocking=True, timeout=5):
      #Do stuff
      b.release()

实例

参考可以直接调用的文件rwlock_test.py,它有超过90%的rwlock.py行覆盖率。

可以通过执行以下操作启动测试

./rwlock_test.py

构建

这个项目使用BUILDME接口,因此您可以通过简单地执行以下操作来构建项目:

./BUILDME

贡献

欢迎您投稿。

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

推荐PyPI第三方库


热门话题
如何将数据从浏览器拖放到具有自定义MIME类型的java swing应用程序中?   java JMockit:如何模拟受保护的方法?   java为什么待办事项已满时服务器socket连接未被拒绝?   java我应该如何并行化计算代价高昂的for循环并整理迭代结果?   java如何以不同的方式编写这部分代码?   java代码没有看到JTextField的值,尽管它显示在接口中   java我对Spring boot中的bean有问题   java在客户端使用CometD获取传输和EOF异常   如何在Java libGDX中正确地为游戏添加示意图   java捕获异常类型两次   java有没有办法在systemPath中使用变量来实现systemscope依赖关系?   在Java中导入多个类文件   java在Visual Studio代码中配置JDK   java我需要帮助在for循环中使用大写这个词,这个词不是用eclipse编写的,而是从txt文件导入的   JAVAutil。scanner类Java读取的输入值太多   java REST Web服务是否支持提供zip文件的范围标头?   java在java代码中生成安全的SQL