Варианты использования PipedInputStream и PipedOutputStream - PullRequest
6 голосов
/ 03 августа 2010

Каковы варианты использования потоков Piped?Почему бы просто не прочитать данные в буфер, а затем записать их?

Ответы [ 5 ]

4 голосов
/ 20 июля 2011

Коллекции BlockingQueue или аналогичные коллекции могут служить вам лучше, что обеспечивает безопасность потоков, надежность и лучше масштабируется.

3 голосов
/ 04 августа 2010

Как сказали другие ответы, они предназначены для использования между потоками. На практике их лучше избегать. Я использовал их один раз в 13 лет, и я бы не хотел.

3 голосов
/ 03 августа 2010

Каналы в Java IO обеспечивают возможность взаимодействия двух потоков, работающих в одной JVM. Поскольку такие каналы являются общим источником или местом назначения данных.

Это полезно, если у вас есть два длинных потока, один из которых настроен на создание данных, а другой использует их.

2 голосов
/ 03 августа 2010

Они обычно используются для одновременного чтения и записи, обычно двумя разными потоками.

(Они очень плохие. Вы не можете переключать нити на одном конце, а затем выходить из этой нити, не нарушая трубы.)

1 голос
/ 03 августа 2010

Одним из преимуществ использования потоков Piped является то, что они обеспечивают функциональность потоков в нашем коде, не заставляя нас создавать новые специализированные потоки.

Например, мы можем использовать каналы для создания простого средства ведения журнала для нашего приложения. Мы можем отправлять сообщения в средство ведения журнала с помощью обычного Printwritter, а затем он может выполнять любую обработку или буферизацию перед отправкой сообщения в конечный пункт назначения. *

подробнее см .: http://docstore.mik.ua/orelly/java/exp/ch08_01.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...