reduce thread