我是Python新手,所以如果這是明顯的道歉,我很抱歉。Python創建比預期多2倍的線程
我想構建多線程應用程序,但是當我想創建一個線程時,我得到兩個而不是一個。
MyThread.py
from threading import Thread
import time
class MyThreadClass(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
print "starting " + self.getName() + "\n"
from main import var1
while True:
print self.getName() + " is running\n"
print "value: " + var1 + "\n"
time.sleep(1)
main.py
from MyThread import MyThreadClass
var1 = "Test"
MyThreadClass().start()
我得到的輸出
Thread-1 is running
Thread-2 is running
Thread-1 is running
Thread-2 is running
Thread-1 is running
Thread-2 is running
.....
爲什麼會發生?我注意到,如果我MyThreadClass().run()
取代MyThreadClass().start()
我得到2條線程,但其中只有一個保持運行
Thread-1 is running
Thread-2 is running
Thread-2 is running
Thread-2 is running
Thread-2 is running
.....
任何想法有什麼錯的代碼?
多麼愚蠢的我,非常感謝! – NathanD