Thread.sleep和object.wait

Jun*_*Liu 0 java

两者都试图做类似的事情,这对线程产生了一些影响.

我知道thread.sleep是让CURRENT线程休眠,等待可以让任何线程等待,如果他们试图获取对象的锁定.

问题是,大部分时间他们都在做类似的事情 - 是什么让你选择一个而不是另一个?

Jon*_*eet 11

不,Object.wait()只会导致当前线程阻塞.

主要区别在于sleep()指示当前线程休眠一段时间,同时wait()指示当前线程释放监视器,然后休眠直到通知监视器.换句话说,wait()是线程之间的协调原语,而sleep()只关心时间的流逝(假设没有中断).