Как остановить поток, ожидающий в операции блокирующего чтения в Java?

У меня есть поток, который выполняет следующий код:

public void run() {
    try {
        int n = 0;
        byte[] buffer = new byte[4096];
        while ((n = in.read(buffer)) != -1) {
            out.write(buffer, 0, n);
            out.flush();
        }
    } catch (IOException e) {
        System.out.println(e);
    }
}

где в равно System.in . Как я могу изящно остановить такую ​​ветку? Ни закрытие System.in , ни использование Thread.interrupt не работают.

20
задан vitaut 23 November 2010 в 18:59
поделиться