スレッドは1つしか作成されていません。特定の状況下では、シャットダウンする必要があります。 この場合は、isInterrupted()
をチェックしてください。しかし、空のInputStreamがある場合はin.readUTF()
にフリーズします。どのようにこれを修正することができますか?空のDataInputStreamからのreadUTFのスレッドフリーズ
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();
}
スレッドを中断する必要があります。ストリームを閉じ、socket.setSoTimeout(ソケットを使用している場合)または他のタイムアウトを使用可能に設定します(ある時点で変換する可能性があります)。 – bestsss