2013-12-25 14:49:00
1. sleep()方法是Thread类的一个静态方法,可以在任意地方被调用,而wait()方法是object类的一个方法,只能在同步代码块或者同步方法里面,通过同步监视器对象来调用;
2. sleep()方法主要作用是控制线程的运行状态,而wait()方法则主要用于线程间的通信;
3. 当前类调用sleep()方法后,该线程进入阻塞状态,直到休息时间到后进入就绪状态,该方法不会释放同步锁;
4. wait()方法被调用后,线程被挂起,直到挂起时间到或者被其他线程notify,进入就绪状态,该方法释放同步锁;
5. sleep()方法抛出异常,需要捕获,而wait()方法不会。
参照: http://jeff-tang.blog.163.com/blog/static/141686909201022010522906/
用interrupt()中断Java线程
http://hapinwater.iteye.com/blog/310558