新手自己看书到这部分 不是很理解这里的阻塞
read 和 write 方法在执行时都将阻塞,直至字节确实被读入或写出。这就意味着如果 流不能被立即访问(通常是因为网络连接忙),那么当前的线程将被阻塞。这使得在这两个方 法等待指定的流变为可用的这段时间里,其他的线程就有机会去执行有用的工作。 available 方法使我们可以去检查当前可读入的字节数量,这意味着像下面这样的代码 片段就不可能被阻塞:
int bytesAvailable=in.available();
if(bytesAvailable>0){
bytep[ data =new byte[bytesAvailable];
in.read(data);}
为什么这样就不会阻塞?
一条小咸鱼
相关分类