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:最大等待时间(毫秒),超过会被唤醒,再次进入锁池.