Is there a way to lock a certain block to a people on similar group?
In java this is done by like this:
synchronize (myGroup) {
}
but how do I do this in python? how can I name the lock that will be
used by the thread?
-rey
You have to do it explicitly, for example with RLock:
myInstance.lock = RLock()
...
myInstance.lock.acquire()
... critical section ...
myInstance.lock.release()
It's often possible to write in a style that avoids this mess.
The preferred way is usually to write isolated threads that
communicate by passing objects through queues (Queue.Queue).
This gets rid of a lot of locking hazards.
> reyjexter <reyj...@gmail.com> writes:
>> synchronize (myGroup) {
>> }
>>
>> but how do I do this in python? how can I name the lock that will be
>> used by the thread?
>
> You have to do it explicitly, for example with RLock:
>
> myInstance.lock = RLock()
> ...
> myInstance.lock.acquire()
> ... critical section ...
> myInstance.lock.release()
In python 2.5 and upwards, you can write this safer
from __future__ import with_statement # only needed for py2.5
with myInstance.lock:
... critical section
Diez
Good point!