Python并发编程:多线程-Thread对象的其它属性和方法

Thread对象的其它属性或方法

介绍:

Thread实例对象的方法
    # isAlive():返回线程是否活动的
    # getName():返回线程名
    # setNmae():设置线程名


threading模块提供的一些方法:
    # threading.currentThread():    返回当前的线程变量
    # threading.enumerate():    返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
    # threading.activeCount():    返回正在运行的线程数量,与len(threading.enumerate())有相同结果

  

验证

from threading import Thread
import threading
from multiprocessing import Process
import os
import time

def work():
    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 140037784917824)>
[<_MainThread(MainThread, started 140037784917824)>, <Thread(Thread-1, started 140037751482112)>]
2
主线程/主进程
Thread-1

  主线程等待子线程结束

import time

def sayhi(name):
    time.sleep(2)
    print('%s say hello' % name)

if __name__ == '__main__':
    t = Thread(target=sayhi, args=('mike', ))
    t.start()
    t.join()
    print('主线程')
    print(t.is_alive())

  执行结果

mike say hello
主线程
False

  

原文地址:https://www.cnblogs.com/mike-liu/p/9287216.html