使用事件的ReadWrite锁,我的解决方案有问题吗?

时间:2018-12-11 20:01:53

标签: python concurrency locking

from threading import Event, Lock


class ReadWriteLock:
    def __init__(self):
        self.read_ready = Event()
        self.read_ready.set()
        self.write_lock = Lock()

    def acquire_read(self):
        self.read_ready.wait()

    def acquire_write(self):
        self.write_lock.acquire()
        self.read_ready.clear()

    def release_read(self):
        pass

    def release_write(self):
        self.read_ready.set()
        self.write_lock.release()

我已经使用条件(比事件IMO更复杂)引用了其他人(https://www.oreilly.com/library/view/python-cookbook/0596001673/ch06s04.html),而其他人则使用2个互斥体(https://gist.github.com/tylerneylon/a7ff6017b7a1f9a506cf75aa23eacfd6)来实现

我想知道我的解决方案是否也按预期工作。如果是这样,会不会更简单? 谢谢!

0 个答案:

没有答案