Java I / O读取延迟

时间:2011-06-23 07:24:13

标签: java io iostream inputstream

当我尝试读取InputStream时,从服务器读取会花费大量时间。该过程读取一些字节暂停5分钟,再次读取,这样它继续。但线程在读取一些字节后挂起。有没有办法快速读取字节?

2 个答案:

答案 0 :(得分:0)

如果您正在从任何设备读取字节,您应该期望read()在一段时间内阻止。这需要多长时间取决于设备。如果它是一个Socket,它取决于另一端发送数据和您的网络特征。

如果您希望连接检测到失败的Socket连接,请让另一端发送常规心跳,除非在有限的时间内收到数据包,否则您可以认为连接已经死亡。

答案 1 :(得分:0)

  

该进程读取一些字节暂停   持续5分钟

这是什么意思。你暂停了,还是暂停了?

如果您暂停5分钟,请不要打扰。 read()将阻塞,直到数据可用。这可能不到5分钟,所以你可能会浪费很多时间。

如果它正在暂停,那是因为read()将阻塞,直到数据可用(见上文)。这意味着服务器的发送速度不如您预期的那么快。所以要调查一下,而不是接收者的行为。