5.1.13 线程对象的属性和方法

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

 

posted @ 2018-06-16 19:25  beallaliu  阅读(161)  评论(0编辑  收藏  举报