use multiple pipe threads in order to get all incoming pipe data