2016-06-15 2 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() 

по какой-то причине threadTwo никогда не запускается и выход всегда threadOne, но когда я переключаю позиционирование threadTwo поверх threadOne, тогда threadOne не запускается. Я полагаю, что это то, как они попадают в очередь, но я не знаю, как это исправить.Только одна тема запускает python

ответ

1

Проблема в том, как передать функции потокам. Вы называете их вместо передачи вызываемого. Вы можете исправить это путем удаления скобок ():

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

Поскольку обе функции содержат бесконечный цикл, вы никогда не пройти вызов первый, который затем зацикливается.