我在循环中使用Python中的线程。每隔5分钟,它将创建线程并完成。 我正在记录线程名称,它似乎在增加。
假设它运行了两个小时,线程名称变为200,是否会导致任何问题,比如不清除线程内存?或者这不是问题吗?
答案 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)