Python只生成2个线程

2024-09-25 00:28:08 发布

您现在位置:Python中文网/ 问答频道 /正文

看看这个小代码:

for server in serverlist:
    while(threading.activeCount() >= maxThreads):
        time.sleep(0.5)     
    threading.Thread(target=pingServer, args=server).start()
    print("Number of Threads running: " + str(threading.activeCount()))

serverlist包含大量主机(1000+)。对于每个条目,For循环使用pingServer函数(pings服务器)创建并启动一个新线程。为了确保不会产生太多线程,maxThreads有一个while循环。你知道吗

但是,无论maxThreads是2、5、10还是100。Python从不产生超过2个线程,因此列表将永远占用。你知道吗

即使我删除while循环(它应该生成无限个线程),它最多也只能生成2个线程

为什么会这样?你知道吗


Tags: 代码intargetforservertimesleep线程