跳转到主要内容

支持同步方法的简单装饰器

项目描述

简介

https://secure.travis-ci.org/pyrenees/plone.synchronize.png

此包提供了一个简单的装饰器,用于帮助在不同线程间同步方法,以避免并发访问的问题。

可以这样使用

from threading import Lock
from plone.synchronize import synchronized

class StupidStack(object):

    _elements = [] # not thread safe
    _lock = Lock()

    @synchronized(_lock)
    def push(self, item):
        self._elements.append(item)

    @synchronized(_lock)
    def pop(self):
        last = self._elements[-1]
        del self._elements[-1]
        return last

装饰器会在方法执行前调用 lock.acquire(),并在方法执行后调用 lock.release()。如果在方法中引发异常,锁仍然会被释放。

更新日志

1.0.4 (2020-04-22)

新功能

  • 停止支持 Python 2.6。支持 2.7、3.5-3.8、PyPy2/3。增加了 tox 用于本地测试。[maurits] (#2)

1.0.3 (2018-03-10)

错误修复

  • 以 wheel 和 egg 格式发布。[gforcada]

1.0.2 (2016-11-01)

新功能

  • 测试 Python 3 兼容性。[datakurre]

1.0.1 - 2011-05-20

  • 添加许可证元数据。[davisagli]

1.0 - 2011-04-30

  • 无变化

1.0b1 - 2009-03-30

  • 首次发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

plone.synchronize-1.0.4.tar.gz (5.0 kB 查看散列)

上传时间 源代码

构建分发

plone.synchronize-1.0.4-py2.py3-none-any.whl (4.4 kB 查看散列)

上传时间 Python 2 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面