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,但是当我在threadOne上切换threadTwo的位置时,threadOne无法运行。我想这就是他们进入队列的方式,但是,我不知道该如何解决。
最佳答案
问题是如何将函数传递给线程。您调用它们而不是传递可调用对象。您可以通过删除括号()
来解决此问题:
print("thread two")
threadTwo = Thread(target=mainLoop)
print("thread one")
threadOne = Thread(target=pingGetterLoop)
由于这两个函数都包含一个无限循环,因此您永远无法调用第一个函数,然后再循环下去。