Python线程名称不断增加(self.name - 1,2,3 ......)

时间:2013-12-04 07:35:55

标签: python multithreading

我在循环中使用Python中的线程。每隔5分钟,它将创建线程并完成。 我正在记录线程名称,它似乎在增加。

假设它运行了两个小时,线程名称变为200,是否会导致任何问题,比如不清除线程内存?或者这不是问题吗?

2 个答案:

答案 0 :(得分:2)

如果您愿意,可以specify thread names自己。如果您没有提供名称,Python将为您插入Thread-N,其中N是一个递增的整数。

来自参考文档:

  

class threading.Thread(group = None,target = None,name = None,args =(),kwargs = {})

     

...

     

name是线程名称。默认情况下,构造唯一名称   形式为“Thread-N”,其中N是一个小的十进制数。

你可能不必担心它。

答案 1 :(得分:0)

每个新线程都会获得一个新的唯一标识(名称)。长期离去的线程的身份不会被重复使用。

此外,您无法启动无限量的并发运行线程。这个例子最终会失败:

import time
import threading,thread

class MyThread(threading.Thread):
    def run(self):
        for _ in range(10):
            #print "I am %s" % self.getName()
            time.sleep(0.01)

if __name__ == "__main__":
    count = 1
    while True:
        print "Starting thread #%d..." % count
        MyThread().start()
        count += 1

如果你添加一些错误处理,你会看到,你可以在其中一个" old"之后开始一个新的线程。完成了。

import time
import threading,thread

class MyThread(threading.Thread):
    def run(self):
        for _ in range(10):
            #print "I am %s" % self.getName()
            time.sleep(0.01)

if __name__ == "__main__":
    count = 1
    while True:
        try:
            print "Starting thread #%d..." % count
            MyThread().start()
            count += 1
        except thread.error:
            time.sleep(0.05)