python 多執行緒使用

2021-06-22 04:05:25 字數 2360 閱讀 8008

**:

一、python中的執行緒使用:

python中使用執行緒有兩種方式:函式或者用類來包裝執行緒物件。

1、  函式式:呼叫thread模組中的start_new_thread()函式來產生新執行緒。如下例:

[python]view plain

copy

import time  

import thread  

def timer(no, interval):  

cnt = 0

while cnt<10:  

print

'thread:(%d) time:%s/n'%(no, time.ctime())  

time.sleep(interval)  

cnt+=1

thread.exit_thread()  

def test(): 

#use thread.start_new_thread() to create 2 new threads

thread.start_new_thread(timer, (1,1))  

thread.start_new_thread(timer, (2,2))  

if __name__==

'__main__':  

test()  

上面的例子定義了乙個執行緒函式timer,它列印出10條時間記錄後退出,每次列印的間隔由interval引數決定。thread.start_new_thread(function, args[, kwargs])的第乙個引數是執行緒函式(本例中的timer方法),第二個引數是傳遞給執行緒函式的引數,它必須是tuple型別,kwargs是可選引數。

2、  建立threading.thread的子類來包裝乙個執行緒物件,如下例:

[python]view plain

copy

import threading  

import time  

class timer(threading.thread): 

#the timer class is derived from the class threading.thread

def __init__(self, num, interval):  

threading.thread.__init__(self)  

self.thread_num = num  

self.interval = interval  

self.thread_stop = false  

def run(self): #overwrite run() method, put what you want the thread do here

while

not self.thread_stop:  

print

'thread object(%d), time:%s/n' %(self.thread_num, time.ctime())  

time.sleep(self.interval)  

def stop(self):  

self.thread_stop = true  

def test():  

thread1 = timer(1, 1)  

thread2 = timer(2, 2)  

thread1.start()  

thread2.start()  

time.sleep(10)  

thread1.stop()  

thread2.stop()  

return

if __name__ == 

'__main__':  

test()  

threading.thread類的使用:

1,在自己的執行緒類的__init__裡呼叫threading.thread.__init__(self, name = threadname)

threadname為執行緒的名字

2, run(),通常需要重寫,編寫**實現做需要的功能。

3,getname(),獲得執行緒物件名稱

4,setname(),設定執行緒物件名稱

5,start(),啟動執行緒

6,jion([timeout]),等待另一線程結束後再執行。

7,setdaemon(bool),設定子執行緒是否隨主線程一起結束,必須在start()之前呼叫。預設為false。

8,isdaemon(),判斷執行緒是否隨主線程一起結束。

9,isalive(),檢查執行緒是否在執行中。

此外threading模組本身也提供了很多方法和其他的類,可以幫助我們更好的使用和管理執行緒。可以參看

python使用多執行緒

做測試的時候,我們不得不接觸下多執行緒,雖然python不能發揮cpu多核的優勢,但是在測試的時候依然十分必要,比如在做介面測試的時候,發出請求之後,在等待伺服器端給予回應的時候,我們不應該傻傻地等,其它執行緒可以在等待的同時發出請求。這樣,我們就能更快地完成我們的測試任務。coding utf 8...

python多執行緒使用

一 簡介 由於python2逐漸不被維護,以及python更優越的效能。後面介紹的python相關知識都是用python3版本寫。這裡介紹python3的多執行緒相關知識,執行緒的建立使用threading包。二 簡單執行緒建立 簡介執行緒的建立,先定義執行任務的函式,然後呼叫threading.t...

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...