версия Python: "2.7.3 (по умолчанию, 10 апреля 2013, 6:20:15) \ п [GCC 4.6.3]Количество активных потоков
У меня есть это:
#!/usr/bin/env python
import time, threading, os
def f1(arg1):
for i in xrange(arg1):
time.sleep(1)
print "i is: ", i
print threading.active_count()
print threading.enumerate()
if __name__ == '__main__':
t = threading.Thread(name="MyThread1", target=f1, args=(5,))
t.start()
Мой вопрос: почему количество активных потоков сообщается как 2 и почему список, сгенерированный enumerate
, также содержит основной поток.
Я думал, что основная нить прекращается после нереста «MyThread1».
$ ./threadeg.py
i is: 0
2
[<_MainThread(MainThread, stopped 139858183157504)>, <Thread(MyThread1, started 139858153768704)>]
i is: 1
2
[<_MainThread(MainThread, stopped 139858183157504)>, <Thread(MyThread1, started 139858153768704)>]
i is: 2
2
[<_MainThread(MainThread, stopped 139858183157504)>, <Thread(MyThread1, started 139858153768704)>]
i is: 3
2
[<_MainThread(MainThread, stopped 139858183157504)>, <Thread(MyThread1, started 139858153768704)>]
i is: 4
2
[<_MainThread(MainThread, stopped 139858183157504)>, <Thread(MyThread1, started 139858153768704)>]
Основной поток не заканчивается, пока существуют другие потоки не-демона. – Cairnarvon
@Cairnarvon Каков источник вашей справки, на основе которого вы делаете заявление? Могу я, пожалуйста, знать? – abc