A piped output stream can be connected to a piped input stream to create a communications pipe. The piped output stream is the sending end of the pipe. Typically, data is written to a
PipedOutputStream
object by one thread and data is read from the connected
PipedInputStream
by some other thread. Attempting to use both objects from a single thread is not recommended as it may deadlock the thread. The pipe is said to be
broken if a thread that was reading data bytes from the connected piped input stream is no longer alive.