public class ReaderThread extends Thread{
private final Socket socket;
private final InputStream in;
public ReaderThread(Socket socket) throws IOException {
if(socket==null){
throw new NullPointerException();
}
this.socket=socket;
this.in=socket.getInputStream();
}
@Override
public void interrupt() {
try {
socket.close();
} catch (IOException e) {
}finally {
super.interrupt();
}
}
@Override
public void run() {
byte[] buf=new byte[1024];
try {
while (true){
//不可中断的阻塞
//重写interrupt方法,关闭Socket
int count = in.read(buf);
if(count<0){
break;
}
if(count>0){
processBuffer(buf,count);
}
}
} catch (IOException e) {
}
}
private void processBuffer(byte[] buf, int count) {
}
}
Java处理不可中断的阻塞-1
最新推荐文章于 2022-03-22 17:04:03 发布