Python中如何获取指定线程的名称?
问题分析
你当前的代码里,print(threading.current_thread().name)是主线程执行的代码,threading.current_thread()只会返回正在执行这行代码的线程,所以输出MainThread是正常的——你要获取的test_thread是另一个子线程,主线程里直接调用这个方法拿不到它的名字。
两种正确解决方案
方案1:在子线程内部获取线程名
子线程的执行逻辑在test函数里,在这个函数内调用threading.current_thread().name,就能拿到当前子线程的名字:
import threading def test(): print("test") print(threading.current_thread().name) # 子线程内获取自身名称 t = threading.Thread(target=test, name="test_thread") t.start() t.join()
执行输出:
test test_thread
方案2:直接访问线程对象的name属性
你创建线程时已经给它命名为test_thread,主线程可以直接通过线程对象t的name属性获取这个名称:
import threading def test(): print("test") t = threading.Thread(target=test, name="test_thread") t.start() print(t.name) # 直接访问线程对象的name属性 t.join()
执行输出:
test test_thread
内容的提问来源于stack exchange,提问作者Super Kai - Kazuya Ito
相关产品推荐
相关产品推荐

