finished io and multithread