Thread物件的其他屬性或方法
阿新 • • 發佈:2018-12-17
Thread物件的其他屬性或方法
介紹
Thread例項物件的方法 # isAlive(): 返回執行緒是否活動的。 # getName(): 返回執行緒名。 # setName(): 設定執行緒名。 threading模組提供的一些方法: # threading.currentThread(): 返回當前的執行緒變數。 # threading.enumerate(): 返回一個包含正在執行的執行緒的list。正在執行指執行緒啟動後、結束前,不包括啟動前和終止後的執行緒。 # threading.activeCount(): 返回正在執行的執行緒數量,與len(threading.enumerate())有相同的結果。
getName()和
setName()
from threading import Thread,currentThread import time # 當前執行緒的物件 currentThread def task(): print("%s is running" % currentThread().getName()) time.sleep(2) print("%s is done" % currentThread().getName()) if __name__ == "__main__": t = Thread(target=task, name="執行緒1") # t=currentThread() t.start() t.setName("兒子執行緒1") # 改執行緒名字 # print(t.getName()) currentThread().setName("主執行緒名稱") # 該主執行緒名字 print("<主執行緒>", currentThread().getName())
執行結果
執行緒1 is running
主執行緒 主執行緒名稱
兒子執行緒1 is done
isAlive()
from threading import Thread, currentThread import time # 當前執行緒的物件 currentThread def task(): print("%s is running" % currentThread().getName()) time.sleep(2) print("%s is done" % currentThread().getName()) if __name__ == "__main__": t = Thread(target=task, name="執行緒1") # t=currentThread() t.start() print(t.isAlive()) # 檢視是否存
執行結果
執行緒1 is running
True
執行緒1 is done
主執行緒等待子執行緒結束
from threading import Thread, currentThread import time # 當前執行緒的物件 currentThread def task(): print("%s is running" % currentThread().getName()) time.sleep(2) print("%s is done" % currentThread().getName()) if __name__ == "__main__": t = Thread(target=task, name="執行緒1") # t=currentThread() t.start() t.join() print(t.isAlive()) # 檢視是否存活
執行結果
執行緒1 is running
執行緒1 is done
False
active_count()
from threading import Thread, currentThread, active_count import time # 當前執行緒的物件 currentThread def task(): print("%s is running" % currentThread().getName()) time.sleep(2) print("%s is done" % currentThread().getName()) if __name__ == "__main__": t = Thread(target=task, name="執行緒1") # t=currentThread() t.start() print(active_count()) # 活躍程序數
執行結果:
執行緒1 is running
2
執行緒1 is done
只剩下主執行緒
from threading import Thread, currentThread, active_count import time # 當前執行緒的物件 currentThread def task(): print("%s is running" % currentThread().getName()) time.sleep(2) print("%s is done" % currentThread().getName()) if __name__ == "__main__": t = Thread(target=task, name="執行緒1") # t=currentThread() t.start() t.join() print(active_count()) # 活躍程序數
執行結果:
執行緒1 is running
執行緒1 is done
1
enumerate()
from threading import Thread, currentThread, active_count, enumerate import time # 當前執行緒的物件 currentThread def task(): print("%s is running" % currentThread().getName()) time.sleep(2) print("%s is done" % currentThread().getName()) if __name__ == "__main__": t = Thread(target=task, name="執行緒1") # t=currentThread() t.start() # t.join() print(enumerate()) # 把當前活躍的執行緒物件取出
執行結果:
執行緒1 is running
[<_MainThread(MainThread, started 10552)>, <Thread(執行緒1, started 3740)>]
執行緒1 is done