5.1.13 線程對象的屬性和方法
阿新 • • 發佈:2018-06-16
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 importThread 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 線程對象的屬性和方法