Make a small function thread safe
Brad Tilley
kj4eit at gmail.com
Fri Dec 16 09:24:19 EST 2011
On Fri, Dec 16, 2011 at 8:33 AM, Tim Wintle <tim.wintle at teamrubber.com>wrote:
> On Fri, 2011-12-16 at 05:21 -0800, Brad Tilley wrote:
> > 107 void increment_counter( unsigned int& counter )
> > 108 {
> > 109 boost::mutex::scoped_lock lock( counter_lock );
> > 110 ++counter;
> > 111 }
>
>
> with counter_lock:
> counter += 1
>
>
> ... where counter_lock is a threading.Lock instance.
>
> (see docs for the threading module)
So something like this then:
import threading
shared_container = []
lock = threading.Lock()
class thread_example( threading.Thread ):
def __init__( self ):
threading.Thread.__init__ (self)
def run(t):
lock
shared_container.append(t.name)
# main
threads = []
for i in xrange(10):
thread = thread_example()
threads.append(thread)
for thread in threads:
thread.start()
for item in shared_container:
print item
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20111216/55639ffc/attachment-0001.html>
More information about the Python-list
mailing list