1 #coding=utf-8
2
3 # locks.py zhangsk
4 import threading, time
5
6 b = 50
7 l = threading.Lock()
8
9 def threadcode():
10 """This is run in the created threads"""
11 global b
12 print "Thread %s invoked" % threading.currentThread().getName()
13 l.acquire()
14 try:
15 print "Thread %s running" % threading.currentThread().getName()
16 time.sleep(1)
17 b = b + 50
18 print "Thread %s set b to %d" % (threading.currentThread().getName(), b)
19 finally:
20 l.release()
21
22 print "Value of b at start of program:", b
23 childthreads = []
24
25 for i in range(1, 5):
26 t = threading.Thread(target = threadcode, name = "Thread-%d" % i)
27 t.setDaemon(1)
28 t.start()
29 childthreads.append(t)
30
31 for t in childthreads:
32 t.join()
33
34 print "New Value of b:", b