multithread with queue