当前位置: 代码迷 >> J2SE >> java InputStream中read()方法的阻塞有关问题
  详细解决方案

java InputStream中read()方法的阻塞有关问题

热度:119   发布时间:2016-04-23 19:52:51.0
java InputStream中read()方法的阻塞问题
本人因为业务需求,需要频繁的调用InputStream中的read()方法从硬件中获取数据,
因为read()方法是阻塞的,如果硬件一直没有数据发过来的话,read()方法会一直阻塞,
但是业务要求如果硬件超过一定时间没有发送信息过来,需要给出提示,这样为了确保能够判断硬件是否有信息发过来,我在read()之前增加了available()进行判断,如果5秒内available()方法返回值都是0的话就说明硬件通讯故障。
但是这样又产生了一个新问题,原本直接调用read()方法时,与硬件进行一次完整的通讯需要大概400毫秒,增加available()方法后时间变为了800毫秒,这个时间又无法接受。不知道哪位大神有好办法解决这个问题!!!!!!!
------解决思路----------------------
进行调优,先看哪一步花费的时间多,进行优化。
如果代码比较简单,先打写时间日志,定位下。
  相关解决方案