猿问

java 流的阻塞是什么意思?为什么下面的代码不会阻塞

新手自己看书到这部分 不是很理解这里的阻塞

read 和 write 方法在执行时都将阻塞,直至字节确实被读入或写出。这就意味着如果 流不能被立即访问(通常是因为网络连接忙),那么当前的线程将被阻塞。这使得在这两个方 法等待指定的流变为可用的这段时间里,其他的线程就有机会去执行有用的工作。 available 方法使我们可以去检查当前可读入的字节数量,这意味着像下面这样的代码 片段就不可能被阻塞:

int bytesAvailable=in.available();

if(bytesAvailable>0){

bytep[ data =new byte[bytesAvailable];

in.read(data);}

为什么这样就不会阻塞?

人间的下午茶
浏览 2035回答 1
1回答

一条小咸鱼

因为你检查过了阿
随时随地看视频慕课网APP

相关分类

Java
我要回答