prwlock - многопоточный reader-writer lock
http://pypi.python.org/pypi/prwlock/from prwlock.prwlock import RWLock
rwlock = RWLock()
from __future__ import print_function
import os
import time
from multiprocessing import Pool
from prwlock.prwlock import RWLock
def f(rwlock):
for i in range(2):
print(os.getpid(), 'Acquiring read lock')
rwlock.acquire_read()
print(os.getpid(), 'Sleeping for a while')
time.sleep(1)
print(os.getpid(), 'Releasing lock')
rwlock.release()
time.sleep(.1)
r = RWLock()
children = 20
pool = Pool(processes=children)
for child in range(children):
pool.apply_async(f, [r])