add pipe, blocking queue, lockCondition