不同

  1. 所在类不同。sleep()来自类Thread,它是Thread类的静态方法,使用它会让线程暂停一段事件;wait()所在类Object。
  2. 使用位置不同。sleep()可以在程序中任何地方使用;wait()只能在同步控制方法里面使用。
  3. 捕获异常不同。sleep()需要捕获异常;而wait()方法可以不同。
  4. 锁机制不同。sleep()方法没有锁释放;wait()方法需要释放锁,使其它线程可以使用同步块或方法。

相同

  1. 都可以阻塞线程继续执行,让线程由运行状态到阻塞状态。

sleep()方法的定义

sleep(long millis) //线程睡眠 millis 毫秒
sleep(long millis, int nanos) //线程睡眠 millis 毫秒 + nanos 纳秒

简单使用

public class ThreadExample {

    public static void main(String[] args)   {
        //休眠1秒
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        System.out.println("exit");
    }
}