Как завершить поток в Java, если поток ожидает ввода?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как завершить поток в Java, если поток ожидает ввода?

Сообщение Anonymous »

Я знаю, что Thread.stop() устарел и следует использовать прерывание() или использовать способ использования внутренней переменной.
Однако https://stackoverflow.com/a /10962613/3809427 говорит "

Код: Выделить всё

InputStream/OutputStream
, которые не могут быть прерваны», и я думаю, что ожидающий поток поток не может быть прерван с помощью внутренней переменной. Ниже приведен пример.

Код: Выделить всё

Thread labelThread = Thread.ofVirtual().unstarted(() -> {
try {
System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
});
labelThread.start();
System.out.println("start");
Thread.sleep(3000);
labelThread.interrupt();
Thread.sleep(1000);
System.out.println(labelThread.isInterrupted());
System.out.println(labelThread.isAlive());
Вывод будет следующим, если вы его не введете.

Код: Выделить всё

start
isInterrupted= true
isAlive= true
Если вы введете что-либо (например, «a»), поток будет завершен.

Код: Выделить всё

start
a
isInterrupted= true
isAlive= false
Фактический процесс, который я хочу завершить, — это inputReader() внешнего приложения, а приведенный выше упрощенный код.
В этих случаях остановитесь () — это единственный способ завершить поток? Я не могу полностью понять следующий ответ, но stop() оказывает негативное влияние на всю систему, а не только на поток, даже если поток такой простой, как указано выше?
java - Thread .stop() - устарел - Qaru QaruSite>

Подробнее здесь: https://stackoverflow.com/questions/791 ... ting-input
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»