您的位置:首页 > 编程语言 > Python开发

python 读写锁(优化)

2013-05-30 15:46 141 查看
python 读写锁(优化)

# import system module
import threading

class ReadWriteLock:
"""A lock object that allows many simultaneous "read-locks",
but only one "write-lock".

"""

def __init__(self,index):
self._read_ready = threading.Condition(threading.Lock())
self._readers = 0
self._index = index

def acquire_read(self):
"""Acquire a read-lock.

Blocks only if some thread has acquired write-lock.
"""

self._read_ready.acquire()
try:
self._readers += 1
finally:
self._read_ready.release()

def release_read(self):
"""Release a read-lock.

"""

self._read_ready.acquire()
try:
self._readers -= 1
if not self._readers:
self._read_ready.notifyAll()
finally:
self._read_ready.release()

def acquire_write(self):
"""Acquire a write lock. Blocks until there are no

acquired read- or write-locks.
"""
self._read_ready.acquire()
while self._readers > 0:
self._read_ready.wait()

def release_write(self):
"""Release a write-lock.

"""

self._read_ready.release()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: