sleep与wait的区别? 以及wait(long timeout)中timeout的含义

sleep是Thread的静态native方法,可随时调用,会使当前线程休眠,并释放CPU资源,但不会释放对象锁;

 public static native void sleep(long millis) throws InterruptedException;

wait方法是Object的方法,只能在同步方法或同步代码块中使用,调用会进入休眠状态,并释放CPU资源与对象锁,需要我们调用notify/notifyAll方法唤醒指定或全部的休眠线程,进入锁池,再次竞争CPU资源.

    public final native void wait(long timeout) throws InterruptedException;

timeout:最大等待时间(毫秒),超过会被唤醒,再次进入锁池.

你可能感兴趣的:(线程)