【Java】【JUC】线程wait()和sleep的区别及使用方法
在多线程编程中, sleep() 和 wait() 是两个常用的方法,用于控制线程的指向状态。
(2) sleep不会释放锁,它也不需要占用锁。wait会释放锁,但调用它的前提是当前线程占有锁(即代码锁要在synchronized中)
(3)它们都可以被interrupted方法中断。
使用方法,如下:
1 public static void main(String[] args) throws InterruptedException { 2 // 1.sleep的使用呢方法 3 Thread.sleep(1000); // 休眠1秒 4 // 2.wait使用放放风 5 Class lock = Demo1Main.class; 6 synchronized (lock) { 7 lock.wait(); // 等待满足条件 8 // 满足条件时唤醒 9 lock.notify(); // 唤醒等待中的线程 10 lock.notifyAll(); // 唤醒所有等待中的线程 11 } 12 }
有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。

浙公网安备 33010602011771号