標籤:
1、python多線程
1 #encoding=utf-8 2 """ 3 python多線程,並非真正意義上的多線程 4 全域鎖:在指定時間裡,有且只有一個線程在運行 5 6 7 """ 8 import threading 9 import time10 11 def test(p):12 time.sleep(0.1)13 print p14 15 # a = threading.Thread(target=test)16 # b = threading.Thread(target=test)17 # a.start()18 # b.start()19 # 20 # a.join()21 # b.join()22 23 lst =[]24 for i in xrange(0, 15):25 th = threading.Thread(target=test, args=[i])26 lst.append(th)27 28 for i in lst:29 i.start()30 31 32 for i in lst:33 i.join()34 print "primary thread end!!!"
2、python下的鎖
1 #encoding=utf-8 2 3 """ 4 1、python全域鎖:GLT 5 python多線程在任意時刻下只有一個線程在運行,它是安全執行緒的 6 """ 7 8 import threading 9 10 num = 011 def t():12 global num13 num +=114 print num15 16 for i in xrange(0, 10):17 d = threading.Thread(target=t)18 d.start()19 20 21 import time22 b_time = time.time()23 _a = threading.Thread(target=t)24 _b = threading.Thread(target=t)25 _a.start()26 _b.start()27 28 _a.join()29 _b.join()30 31 print time.time()-b_time32 33 """34 加鎖:acquire()35 解鎖:release()36 RLock()可重新進入鎖37 38 39 """40 import threading41 mlock = threading.Lock()42 #mlock = threading.RLock()43 44 num_01 = 045 def a():46 global num_0147 mlock.acquire()48 num_01 += 149 mlock.release()50 print num_0151 52 for i in xrange(0, 10):53 d = threading.Thread(target=a)54 d.start()55
python下線程以及鎖