2016-03-02 91 views
1

所以我編寫了一個使用線程的程序,但是當我創建一個新線程時,它會被卡在該線程中,而程序的其餘部分無法運行。爲什麼我的程序卡在一個線程上?

t=threading.Thread(target=get_connections()) 
t.start() 

def get_connections(self): 
    c, addr=self.s.accept() 

爲什麼我的程序停留在這個線程上?

回答

1

當您將該函數傳遞給Thread時,您正在調用該函數。不要包括括號。它改成這樣:

t=threading.Thread(target=get_connections) 

的第二個問題是,您引用get_connections()定義之前。您需要稍微移動該定義。

+0

哦,我的壞...我應該意識到我有那些括號......哈哈謝謝!是的,我知道該方法是在通話之後。我只是在這裏粘貼代碼的一部分,並將其置於亂序。 –

0
  1. target=get_connections()將通過get_connections作爲目標參數傳遞返回值。
  2. 根據get_connections的定義,它好像是一個類的方法。 使用get_connections作爲代碼來創建線程t,類的實例是None。
相關問題