Thread其他属性和方法

Posted 丫丫625202

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thread其他属性和方法相关的知识,希望对你有一定的参考价值。

1、查看修改线程名称

currentThread().getName()

from threading import Thread,currentThread
import time

def task():
    print("%s is running" % currentThread().getName())
    time.sleep(2)
    print("%s is done",currentThread().getName())
if __name__ == "__main__":
    t=Thread(target=task)
    t.start()
    print("The main name:",currentThread().getName() )

参数name对线程名称进行修改

from threading import Thread,currentThread
import time

def task():
    print("%s is running" % currentThread().getName())
    time.sleep(2)
    print("%s is done" % currentThread().getName())
if __name__ == "__main__":
    t=Thread(target=task,name="The new Thread")
    t.start()
    print("The main name:",currentThread().getName())

“子”线程设置线程名称:t.setName(NewName)

“主”线程设置线程名称,先拿到主线程,在调用setName方法

from threading import Thread,currentThread
import time
def task():
    print("%s is running" % currentThread().getName())
    time.sleep(2)
    print("%s is done" % currentThread().getName())
if __name__ == "__main__":
    t=Thread(target=task,name="The new Thread")
    t.start()
    t.setName("New Name")
    currentThread().setName("Main new name")
    print("The main name:",currentThread().getName())

2、查看线程是否存活t.isAlive()或者t.is_alive()

from threading import Thread,currentThread
import time
def task():
    print("%s is running" % currentThread().getName())
    time.sleep(2)
    print("%s is done" % currentThread().getName())
if __name__ == "__main__":
    t=Thread(target=task,name="The new Thread")
    t.start()
    # t.is_alive()
    print(t.isAlive())
    print("The main name:",currentThread().getName())

 3、查看线程存活数量active_count

from threading import Thread,currentThread,active_count
import time
def task():
    print("%s is running" % currentThread().getName())
    time.sleep(2)
    print("%s is done" % currentThread().getName())
if __name__ == "__main__":
    t=Thread(target=task,name="The new Thread")
    t.start()
    # t.is_alive()
    print(active_count())

4、拿到活跃的线程对象enumerate

from threading import Thread,currentThread,enumerate
import time
def task():
    print("%s is running" % currentThread().getName())
    time.sleep(2)
    print("%s is done" % currentThread().getName())
if __name__ == "__main__":
    t=Thread(target=task,name="The new Thread")
    t.start()
    print(enumerate())

 

以上是关于Thread其他属性和方法的主要内容,如果未能解决你的问题,请参考以下文章

网络编程之多线程——Thread对象的其他属性或方法

2-4 Thread对象的其他属性或方法

多线程之 Thread 对象的其他属性或方法

7.3.3 - 并发多线程 Thread对象的其他属性或方法

Thread的其他属性方法

多线程 Thread 线程同步 synchronized