multi-thread to solve productor consumer