我用 server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler)接收 tcp 连接数据(可以收到),现在我想把接收的数据 data = bytearray(self.request.recv(1024).strip())存到 queue 中( sensor_que.put(sensor_data,block=True)),又单独启动新线程循环取 queue 数据并存到 sql,如果这样:def getsensor_que(): while True: sensor = sensor_que.get(block=True) #阻塞,queue 为空时,不会 Queue.Empty 异常 print(sensor) savetosql(sensor)
for i in range(multiprocessing.cpu_count()): t = threading.Thread(target=getsensor_que) t.start() 会不会死循环呢,还是可以?因为现在 socket 是一直接收数据并存到 queue 的,我想的是新开的线程也是一直从 queue 取数据保存。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.