두 개의 다른 소스에서 입력을받는 다중 스레드 콘솔 앱이 있습니다. 하나는 콘솔에 입력하는 사용자이고 다른 하나는 네트워크입니다. 나는 BufferedReader.readline()을 사용하여 사용자와 그 블럭으로부터 입력을 얻는다. 기다리고있는 동안 네트워크 입력을받지 않는다면 좋다. 이 경우 readline()을 취소하여 사용자 스레드의 차단을 해제해야합니다.Java에서 System.in을 닫은 후 System.in을 다시 열 수 있습니다.
취소하는 가장 좋은 방법은 System.in을 닫고 readline()이 예외를 throw하는 것입니다. 그 후에는 다시 열어야합니다. 그게 가능하니?
에 약간의 사용이다. – Secondo
[System.in'을 열지 않았으므로 결코 닫아서는 안됩니다.] (http://stackoverflow.com/a/7457737/545127). – Raedwald