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)来实现
我想知道我的解决方案是否也按预期工作。如果是这样,会不会更简单? 谢谢!