私はPythonが初めてなので、これが明らかな場合は申し訳ありません。
マルチスレッドアプリケーションを構築しようとしていますが、スレッドを作成したいときに、1 つではなく 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().start()
に置き換えるとMyThreadClass().run()
2つのスレッドが得られますが、そのうちの1つだけが実行され続けることに気付きました
Thread-1 is running
Thread-2 is running
Thread-2 is running
Thread-2 is running
Thread-2 is running
.....
コードの何が問題なのか分かりますか?