def run(self):
while True:
if not self.MessagesQueue.empty():
self.sendMessage()
response=self.s.recv(1024).decode("utf-8")
self.processResponse(response)
time.sleep(1)
def addMessageToQueue(self,message): #called from main thread
self.MessagesQueue.put(message)
这段代码在一个线程上运行,代码的问题是recv阻塞线程所以我只能在收到1024字节的数据时发送sendMessage(),我想在我想要的时候发送数据,即使在迭代中也是如此完全没有收到1024个字节。
我该怎么做? 感谢。
答案 0 :(得分:0)
如果应用程序不要求您同步它们,请在不同的线程中进行发送和接收。线程的每个方向都是独立的,在recv()
中阻塞另一个线程时,在一个线程中发送没有问题。