1. 程式人生 > >5.1.13 線程對象的屬性和方法

5.1.13 線程對象的屬性和方法

cti target work ive 分享圖片 sleep spl 變量 view

Thread實例對象的方法:

  getName(): 返回線程名

  setName(‘XXX‘): 設置線程名

is_alive(): 線程是否存活

threading模塊提供的一些方法:

threading.current_thread() : 返回當前線程的變量

threading. enumerate(): 返回一個包含正在運行的線程的list。不包括啟動前和終止後的線程。

  threading.active_count(): 返回正在運行的線程數量。同len(threading. enumerate())

驗證:

from threading import
Thread from threading import current_thread from threading import active_count from threading import enumerate import time def work(): print(%s 線程在運行 % current_thread().getName()) time.sleep(3) print(%s 線程結束 % current_thread().getName()) if __name__ == __main__: t1 = Thread(target=work) t1.start() t1.setName(
子線程1) print(主線程中t1.getName:%s % t1.getName()) print(主線程中的getName(): %s % current_thread().getName()) print(主線程中t1.is_alive(), t1.is_alive()) print(主線程中join前的active_count():, active_count()) print(主線程中join前的enumerate():, enumerate()) t1.join() print(已經join了....
) print(主線程中t1.is_alive(), t1.is_alive()) print(主線程中join後的active_count():, active_count()) print(主線程中join後的enumerate():, enumerate())

運行結果:

技術分享圖片
Thread-1 線程在運行
主線程中t1.getName:子線程1
主線程中的getName(): MainThread
主線程中t1.is_alive() True
主線程中join前的active_count(): 2
主線程中join前的enumerate(): [<_MainThread(MainThread, started 4321387392)>, <Thread(子線程1, started 123145394180096)>]
子線程1 線程結束
已經join了....
主線程中t1.is_alive() False
主線程中join後的active_count(): 1
主線程中join後的enumerate(): [<_MainThread(MainThread, started 4321387392)>]
View Code

5.1.13 線程對象的屬性和方法