网络编程-线程-2如何查看有多少个线程在运行

Posted 上海小盖伦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程-线程-2如何查看有多少个线程在运行相关的知识,希望对你有一定的参考价值。

以上一节代码为例,如何查看运行的线程数,需要调用threading模块里面的enumerate方法,返回一个线程数列表:

import threading
import time

"""以上一章的代码为例,如何查看有多少个线程在运行"""


def sing():
    """唱歌5秒钟"""
    for i in range(3):
        print(\'----------------\')
        print(\'我在唱歌....\')
        time.sleep(1)


def dance():
    for i in range(5):
        print(\'我在跳舞....\')
        print(\'----------------\')
        time.sleep(1)


def main():
    t = threading.Thread(target=sing)  
    t2 = threading.Thread(target=dance)
    t.start()
    t2.start()
    # 循环打印正在运行的线程数,调用threading模块中的enumerate方法返回一个列表,里面的元素就是运行的线程,打印出元素个数就是线程数
    while True:
        nums = len(threading.enumerate())
        print(threading.enumerate())
        # 当没有线程时,就退出
        if nums <= 1:
            break
        time.sleep(1)

if __name__ == \'__main__\':
    main()

运行结果如下:

我在唱歌....
我在跳舞....
[<_MainThread(MainThread, started 26264)>, <Thread(Thread-1, started 23804)>, <Thread(Thread-2, started 24216)>]
[<_MainThread(MainThread, started 26264)>, <Thread(Thread-1, started 23804)>, <Thread(Thread-2, started 24216)>]
我在跳舞....
我在唱歌....
[<_MainThread(MainThread, started 26264)>, <Thread(Thread-1, started 23804)>, <Thread(Thread-2, started 24216)>]
我在唱歌....
我在跳舞....
[<_MainThread(MainThread, started 26264)>, <Thread(Thread-1, started 23804)>, <Thread(Thread-2, started 24216)>]
我在跳舞....
[<_MainThread(MainThread, started 26264)>, <Thread(Thread-2, started 24216)>]
我在跳舞....
[<_MainThread(MainThread, started 26264)>, <Thread(Thread-2, started 24216)>]
[<_MainThread(MainThread, started 26264)>]

 

解释如下图:

 

以上是关于网络编程-线程-2如何查看有多少个线程在运行的主要内容,如果未能解决你的问题,请参考以下文章

linux线程时间片多长

linux 查看进程有多少线程

015 输入理解时间片

面试问我,创建多少个线程合适?我该怎么说

3.如何理解开多线程可以充分利用CPU?

linux 最多支持多少个线程