03Thread物件的其他屬性和方法.py
阿新 • • 發佈:2018-11-19
Thread物件的其他屬性或方法
介紹
Thread例項物件的方法 # isAlive(): 返回執行緒是否活動的。 # getName(): 返回執行緒名。 # setName(): 設定執行緒名。 threading模組提供的一些方法: # threading.currentThread(): 返回當前的執行緒變數。 # threading.enumerate(): 返回一個包含正在執行的執行緒的list。正在執行指執行緒啟動後、結束前,不包括啟動前和終止後的執行緒。 # threading.activeCount(): 返回正在執行的執行緒數量,與len(threading.enumerate())有相同的結果。
驗證
from threading import Thread import threading from multiprocessing import Process import os def work(): import time time.sleep(3) print(threading.current_thread().getName()) if __name__ == '__main__': #在主程序下開啟執行緒 t=Thread(target=work) t.start() print(threading.current_thread().getName()) print(threading.current_thread()) #主執行緒 print(threading.enumerate()) #連同主執行緒在內有兩個執行的執行緒 print(threading.active_count()) print('主執行緒/主程序')
執行結果
MainThread
<_MainThread(MainThread, started 140735268892672)>
[<_MainThread(MainThread, started 140735268892672)>, <Thread(Thread-1, started 123145307557888)>]
主執行緒/主程序
Thread-1
主執行緒等待子執行緒結束
from threading import Thread import time def sayhi(name): time.sleep(2) print('%s say hello' %name) if __name__ == '__main__': t=Thread(target=sayhi,args=('egon',)) t.start() t.join() print('主執行緒') print(t.is_alive())
執行結果
egon say hello
主執行緒
False