在我的局域网上有一个仪器,每隔5-10毫秒发送一个UDP数据包。在我的应用程序中,我有一个读线程,它在套接字启动时分配一个具有大缓冲区的套接字,然后进入一个无限循环来读取累积的包,解析它们,将它们写入假脱机程序,然后休眠半秒(time.sleep(0.500)
)。
我有几个懒散的数据消费者,他们中的大多数都会存档或生成被动统计数据。但是一个消费者(用于显示)需要即时数据,并且需要在查询假脱机程序之前唤醒休眠的读卡器(以读取套接字)。
什么是唤醒睡眠线的最佳方法?
(或者,有没有更好的方法让线程更容易醒来?)
Tags:
我没有注意到threading.condition.wait()有一个可选的超时参数!
答案是create a condition object,并使用它的wait()方法和可选超时,而不是time.sleep()。如果需要在超时之前唤醒线程,请调用condition对象的notify()方法。
相关问题 更多 >
编程相关推荐