1. 程式人生 > >python之threading模組

python之threading模組

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)