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

2022-08-02 10:15:07 字數 2150 閱讀 8611

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

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

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的子類來包裝乙個執行緒物件,如下例:

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中的執行緒使用 python中使用執行緒有兩種方式 函式或者用類來包裝執行緒物件。1 函式式 呼叫thread模組中的start new thread 函式來產生新執行緒。如下例 python view plain copy import time import thread def...

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...