Основываясь на этом question, я хотел бы задать следующее. Предполагая, что блокирование ввода/вывода и у меня есть кусок кода, как следующее:доступны и прочитаны: можем ли мы быть неблокируемыми при использовании блокировки Java I/O?
byte[] data = new byte[10];
someInputStream.read(data)
Этот фрагмент кода собирается блокировать в read
вызова до тех пор, пока имеет несколько байт для чтения. Мне известно, что read
может фактически читать меньше байтов, и количество прочитанных байтов будет возвращено методом read
.
Мой вопрос в том, что. Предположим, у меня есть:
byte[] data = new byte[10];
if (someInputeStream.available() >= 10) {
someInputStream.read(data); // ***
}
Гарантируется ли ***
линия не блокировать? Опять же, я знаю, что это чтение все равно может читать менее 10 байт.