final multithread