2016-03-02 90 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。
相关问题