Записать исключение end dead с использованием PipedInputStream java

Исключение отсутствия записи при окончании записи происходит в следующей ситуации: Два потока:

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 напишет канал, что также нестабильно. Как избежать этой проблемы и решить ее? Спасибо

9
задан laynece 28 March 2011 в 00:28
поделиться