Python多執行緒學習 一 執行緒的使用

2021-06-18 04:43:04 字數 2349 閱讀 1904

一、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中使用執行緒有兩種方式 函式或者用類來包裝執行緒物件。1 函式式 呼叫thread模組中的start new thread 函式來產生新執行緒。如下例 import thread def timer no,interval cnt 0 while cnt 10 print thread ...

Python多執行緒學習 一 執行緒的使用

python中使用執行緒有兩種方式 函式或者用類來包裝執行緒物件。1 函式式 呼叫thread模組中的start new thread 函式來產生新執行緒。如下例 import thread def timer no,interval cnt 0 while cnt 10 print thread ...

C 多執行緒(一) 執行緒管理

多執行緒是 此處省略一萬字,省略的文字詳細說明了什麼是多執行緒 其歷史及其發展 使用多執行緒的好處和缺點以及c c 對多執行緒的支援的歷史 c 標準庫自c 11標準以來開始支援多執行緒,多執行緒相關的類在thread標頭檔案中,所以使用請先必須 include 啟動乙個執行緒非常簡單,例程如下 in...