mutithread update