multi-thread receiving