【问题标题】:Reading from InputStream从 InputStream 中读取
【发布时间】:2012-03-03 16:04:53
【问题描述】:

我需要编写将从 InputStream 读取数据的应用程序。简而言之:我的应用程序将首先连接到蓝牙设备。连接后,我的应用程序将不断地从 InputStream 中读取数据。我的意思是设备将发送 20 毫秒的数据,而应用程序将接收到此数据,工作时间可能更长 24 小时。现在我以这种方式读取这些数据:

while((bytesReceived = is.read(buffer))>-1) {
  //things to do with data
}

此循环在流中接收数据,并在输入流关闭时停止。我的问题是我认为这不是最佳解决方案。在 is.read(buffer) 接收数据后,它会阻塞等待下一个数据,这会消耗大量处理器。你知道有什么更好的方法来读取消耗最少处理器功率的数据吗?感谢您的帮助。

顺便说一句。我在 Android 上用 Java 编写我的应用程序。

【问题讨论】:

    标签: java android inputstream


    【解决方案1】:

    阻塞 read 不会消耗 CPU。操作系统会将调用线程/进程置于睡眠状态。

    那个循环很好。

    【讨论】:

      猜你喜欢
      • 2018-06-26
      • 2010-12-20
      • 2017-07-15
      • 1970-01-01
      • 2023-03-30
      • 2010-12-25
      • 2016-05-16
      • 1970-01-01
      相关资源
      最近更新 更多