It is a design pattern. Processes are arranged in a manner so that output of each process serves as input to the next. Buffering is provided within each process or chain of pipeline. Pipelining is important while creating an multitasking application. It may be one-way or bidirectional.
Please go through this URL where you will find detailed implementation in terms of code:
Hope it helps.!