基于文件的linux和windows python锁

locket的Python项目详细描述


locket实现了一个可以被多个进程使用的锁,前提是它们使用相同的路径。

importlocket# Wait for lockwithlocket.lock_file("path/to/lock/file"):perform_action()# Raise error if lock cannot be acquired immediatelywithlocket.lock_file("path/to/lock/file",timeout=0):perform_action()# Raise error if lock cannot be acquired after thirty secondswithlocket.lock_file("path/to/lock/file",timeout=30):perform_action()# Without context managers:lock=locket.lock_file("path/to/lock/file")try:lock.acquire()perform_action()finally:lock.release()

锁在很大程度上表现为(不可重入)lock线程中的实例 标准库中的模块。具体来说,他们的行为是:

  • 锁由被锁定的文件唯一标识, 在同一个过程中,在不同的过程中。
  • 锁处于锁定或解锁状态。
  • 当锁被解锁时,调用acquire()将立即返回并更改 锁定状态为锁定。
  • 当锁被锁定时,调用acquire()将被阻塞,直到锁状态 更改为unlocked,或直到超时过期。
  • 如果进程持有锁,则该进程中的任何线程都可以调用 将状态更改为unlocked。
  • 未定义fork之后的锁行为。

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

推荐PyPI第三方库


热门话题
java在Rally中的新测试文件夹下创建新测试用例   如何使用Selenium Webdriver和Java编写定位器来单击img?   while循环中的java异常处理   java发布自定义事件并在基于SpringMVC的Rest应用程序中异步处理它   java我可以在两个设备之间创建socket,其中一个设备连接到wifi internet,另一个连接到3G或2G internet。?   java提供了一个项目列表(不同类型),如何将它们分开,以便每个组只包含相同类型的项目   java如何在JBPM 6中获取和设置进程的局部变量列表?   java将Spring批处理连接到Spring集成工作流   java如何在安卓中使用Gson反序列化LocalDateTime?   java如何在openmrs和spring中分割值复杂数据?   java高效地在一组数字中查找组合   java缩小继承的返回类型(涉及泛型)   java SSLEngine提供需要\u在展开服务器后展开hello done   java JPA限制'queryResultList',即使'setMaxResults'未定义   java JTable着色?   java 安卓在移动到其他活动时保留内存   在Hibernate中用MySQL模拟延迟约束   如何将Java数组字符串写入Json文件