用multithread