我有两个简单的函数:
def run(self):
# Make 20 instances of clients and start those
for i in xrange(0,20):
t = threading.Thread(target = self.run_clients_in_seperate_threads())
t.start()
和
def run_clients_in_seperate_threads(self):
print 'inside run_clients_in_seperate_threads'
client_id = self.generate_client_id()
cl = Client(client_id)
cl.start()
这里,最后一行:cl.start()
是一个无限循环。
我认为主线程在启动子线程后将变得空闲,因此总共会产生 20 个线程。 但似乎主线程在启动第一个线程后等待。
有人可以解释一下我做错了什么吗?
最佳答案
使用 target = self.run_clients_in_seperate_threads
并将 self
传递给 args
参数。你这样做的方式是在主线程中调用该方法,并以无限循环结束:self.run_clients_in_seperate_threads != self.run_clients_in_seperate_threads()
关于python - 主线程卡在Python多线程中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24323654/