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
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