Writing a thread-safe class
terminatorul at gmail.com
Sat Sep 12 01:26:34 CEST 2009
I would like to write a class with methods that can be accessed by many
threads at the same time.
For this I have a lock attribute in my class obtained with
threading.Lock(), in the constructor, and every method begins by
acquiring the lock and ends by releasing it
My problem is that the lock is still an attribute of the class, and the
very expression self.lock in the statement self.lock.acquire() is
performed before locking, thus not being thread-safe.
If I am correct self is a dictionary of object attributes, and if
another thread has the lock and creates a new attribute, or deletes one,
in the same time with my lookup for self.lock, than the lookup is
How do people create thread-safe classes in python ?
More information about the Python-list