只有一个线程正在创建。在某些情况下,它需要关闭。在这种情况下,可以通过检查来完成isInterrupted()
。但是in.readUTF()
如果有空的InputStream,它就会冻结。如何解决这个问题?
DataInputStream in;
....
public void stop() {
thread.interrupt();
}
public void run() {
while(true) {
String str = in.readUTF(); // locking here, when stream is empty
S.o.p(str)
if(isInterrupted) {
return;
}}
}
public void main(String args[]) {
Thread thread = new Thread();
}