Python基礎 Thread類與執行緒物件

2021-09-11 18:41:34 字數 1316 閱讀 7005

上一節學習了thread多執行緒的建立和管理

這一次學thread類與執行緒物件

thread構造方法的target關鍵字引數不僅僅可以是乙個函式,還可以是乙個物件,稱物件為執行緒物件。

其實執行緒呼叫的仍是函式,只是這個函式用物件進行了封裝,這樣更符合物件導向程式設計的習慣。

建立的類中必須含有"__call__"方法,當執行緒啟動時會自動呼叫執行緒函式

先看**:

# 多執行緒

import threading

from time import sleep, ctime

# 執行緒物件對應的物件

class mythread(object):

def __init__(self,func,args):

self.func = func

self.args = args

# 啟動執行緒是會呼叫這個方法

def __call__(self, *args, **kwargs):

self.func(*self.args)

# 執行緒函式

def fun(index,sec):

print('開始執行',index,'時間',ctime())

sleep(sec)

print('結束執行',index,'時間',ctime())

def main():

print('執行開始時間',ctime())

thread1 = threading.thread(target=mythread(fun,(1,4))) # 建立執行緒

thread1.start()

thread2 = threading.thread(target=mythread(fun,(5,4))) # 建立執行緒

thread2.start()

# 等待第乙個執行緒執行完畢

thread1.join()

# 等待第二個執行緒執行完畢

thread2.join()

if __name__ == "__main__":

main()

執行結果:

執行開始時間 sat mar  2 19:31:53 2019

開始執行 1 時間 sat mar 2 19:31:53 2019

開始執行 5 時間 sat mar 2 19:31:53 2019

結束執行 5 時間 sat mar 2 19:31:57 2019

結束執行 1 時間 sat mar 2 19:31:57 2019

bingo!

Thread執行緒類

posted on 2011 05 03 10 45 明天陪你看海 閱讀 123 編輯收藏 說明 apartmentstate 獲取或設定此執行緒的單元狀態 currentcontext 獲取執行緒正在其中執行的當前上下文 currentthread 獲取當前正在執行的執行緒 isalive 獲取乙...

Thread執行緒類

posted on 2011 05 03 10 45 明天陪你看海 閱讀 123 編輯收藏 說明 apartmentstate 獲取或設定此執行緒的單元狀態 currentcontext 獲取執行緒正在其中執行的當前上下文 currentthread 獲取當前正在執行的執行緒 isalive 獲取乙...

Thread執行緒類

屬性說明 apartmentstate 獲取或設定此執行緒的單元狀態 currentcontext 獲取執行緒正在其中執行的當前上下文 currentthread 獲取當前正在執行的執行緒 isalive 獲取乙個值,該值指示當前執行緒的執行狀態 managedthreadid 獲取當前託管執行緒的...