如何在python中使用信号量?

时间:2016-07-19 18:29:39

标签: python semaphore

为了访问数据库并同时避免两次提交,我尝试使用BoundedSemaphoresee here),如下所示:

from threading import BoundedSemaphore
...
commit_sema = BoundedSemaphore(value=1) 

class Sqlite(object):
    ...
    def commit():
        commit_sema.acquire()
        self.conn.commit()  # self.conn is the Connection object
        commit_sema.release()

但是虽然我确保使用Sqlite类的相同实例,但我看到在第一个完成之前已经进行了第二次commit()调用。

我的印象是第二次通话应该被阻止,直到第一个来电呼叫release()来增加Semaphore计数器。但这种情况并非如此。

那么我在这里看错了什么?如何正确地做到这一点?

0 个答案:

没有答案