1
所以我編寫了一個使用線程的程序,但是當我創建一個新線程時,它會被卡在該線程中,而程序的其餘部分無法運行。爲什麼我的程序卡在一個線程上?
t=threading.Thread(target=get_connections())
t.start()
def get_connections(self):
c, addr=self.s.accept()
爲什麼我的程序停留在這個線程上?
所以我編寫了一個使用線程的程序,但是當我創建一個新線程時,它會被卡在該線程中,而程序的其餘部分無法運行。爲什麼我的程序卡在一個線程上?
t=threading.Thread(target=get_connections())
t.start()
def get_connections(self):
c, addr=self.s.accept()
爲什麼我的程序停留在這個線程上?
當您將該函數傳遞給Thread
時,您正在調用該函數。不要包括括號。它改成這樣:
t=threading.Thread(target=get_connections)
的第二個問題是,您引用get_connections()
定義之前。您需要稍微移動該定義。
target=get_connections()
將通過get_connections作爲目標參數傳遞返回值。
哦,我的壞...我應該意識到我有那些括號......哈哈謝謝!是的,我知道該方法是在通話之後。我只是在這裏粘貼代碼的一部分,並將其置於亂序。 –