multi thread implement complete