2016-06-15 13 views
0
def pingGetterLoop(): 
    while(1): 
     pingGetter() 

def mainLoop(): 
    root.mainloop() 


print("thread two") 
threadTwo = Thread(target = mainLoop()) 
print("thread one") 
threadOne = Thread(target = pingGetterLoop()) 

threadOne.start() 
threadTwo.start() 

スレッドは決して起動せず、出力は常にthreadOneですが、threadOwの位置を切り替えるとthreadOneは実行されません。私はそれがキューに入っている方法だと思いますが、それを修正する方法はわかりません。何らかの理由でスレッドが1つのスレッドだけがPythonを起動しています

答えて

1

問題はスレッドに関数を渡す方法です。あなたは呼び出し可能なものを渡す代わりにそれらを呼び出します。あなたはブラケットに()を除去することによって、これを修正することができます

print("thread two") 
threadTwo = Thread(target=mainLoop) 
print("thread one") 
threadOne = Thread(target=pingGetterLoop) 

両方の機能は、無限ループが含まれているとして、あなたは、永遠にループする最初のものを、呼び出しを乗り越えることはありません。

関連する問題