我用 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 取数据保存。
1
zy820 OP 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() |
2
zy820 OP 没有大神指点一下吗
|