两者施加者有本质区别.
sleep()让某线程暂停运行段时间,其控制范围由当前线程决定,也说,线程里面决定.好比说,我要做事情 "点火->烧水->煮面",而当我点完火之我立即烧水,我要休息段时间再烧.对于运行主动权由我流程来控制.
而wait(),首先,由某确定对象来调用,对象理解成传人,当人某线程里面说"暂停!",也thisOBJ.wait(),里暂停阻塞,还"点火->烧水->煮饭",thisOBJ好比监督我人站我旁边,本来该线程应该执行1执行2,再执行3,而2处被对象喊暂停,我会直等里而执行3,正流程并没有结束,我直想去煮饭,还没被允许,直对象某地方说"通知暂停线程启动!",也thisOBJ.notify()时候,我煮饭了,被暂停线程会从暂停处继续执行.
其实两者都让线程暂停段时间,本质区别线程运行状态控制,线程之间通讯问题 |