python之threading模組
阿新 • • 發佈:2018-11-09
1、threading簡介
2、建立執行緒
2.1、建立2個執行緒
import threading def run(n): print("task", n) t1 = threading.Thread(target=run, args=("t1",)) t2 = threading.Thread(target=run, args=("t2",)) t1.start() t2.start()
2.2、建立多個執行緒
import threading import time def run(n): print("task", n) time.sleep(2) print("task done", n) start_time = time.time() t_objs = [] # 存執行緒例項 for i in range(50): t = threading.Thread(target=run, args=("t-%s" % i,)) t.start() t_objs.append(t) # 為了不阻塞後面執行緒的啟動,不在這裡join,先放到一個列表裡 for t in t_objs: # 迴圈執行緒例項列表,等待所有執行緒執行完畢 t.join() print("active count:",threading.activeCount()) print("----------all threads has finished...", threading.active_count()) # print("----------all threads has finished...", threading.activeCount())
2.3、使用執行緒鎖
import threading import time def run(n): lock.acquire() global num num +=1 lock.release() lock= threading.Lock() num = 0 t_objs = [] #存執行緒例項 for i in range(10000): t = threading.Thread(target=run,args=("t-%s" %i ,)) t.start() t_objs.append(t) #為了不阻塞後面執行緒的啟動,不在這裡join,先放到一個列表裡 for t in t_objs: #迴圈執行緒例項列表,等待所有執行緒執行完畢 t.join() print("----------all threads has finished...",threading.current_thread(),threading.active_count()) print("num:",num)