我的代码接受来自多个源的gps数据,并将其聚合并发送回连接到一个线程化单套接字的多个客户端。但是我似乎在用cpu的资源运行。在
如果我添加代码来等待来自客户端的一些数据,cpu的使用就会消失,但是客户端只接受gps信息流,他们不会发送任何信息。在
下面是发送数据正常但运行高CPU的服务器代码class ThreadedServerRequestHandler(SocketServer.StreamRequestHandler):
def handle(self):
global SendData
global SendNow
while True:
SendNow
for line in SendData:
self.request.sendall(line)
SendData = []
SendNow = False
return
class ServerThread(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
daemon_threads = True
allow_reuse_address = True
if __name__ == '__main__':
import socket
import threading
address = TxServer
server = ServerThread(address, ThreadedServerRequestHandler)
t = threading.Thread(target=server.serve_forever)
t.setDaemon(True) # don't hang on exit
t.start()
如果我把它改为低于cpu停止,但它只输出数据,如果我发送按键。在
^{pr2}$
有没有办法在数据发送之前暂停线程?或者我可以模拟接收到的消息来触发来自主程序的数据突发吗?在