Исключение отсутствия записи при окончании записи происходит в следующей ситуации: Два потока:
A: PipedOutputStream put = new PipedOutputStream();
String msg = "MESSAGE";
output.wirte(msg.getBytes());
output.flush();
B: PipedInputStream get = new PipedOutputStream(A.put);
byte[] get_msg = new byte[1024];
get.read(get_msg);
Вот ситуация: A и B работают одновременно, A записывает в канал, а B читает его. B только что прочитал из канала, и буфер этого канала очищен. Тогда A не записывает сообщение в канал через неизвестный интервал. Однако в какой-то момент B снова считывает канал, и возникает java.io.IOException: конец записи мертв
, потому что буфер канала все еще пуст. И я не хочу, чтобы поток B sleep () ждал, пока A напишет канал, что также нестабильно. Как избежать этой проблемы и решить ее? Спасибо