wait、sleep、notify、notifyAll的区别
来源:互联网 发布:51recovery数据恢复 编辑:程序博客网 时间:2024/05/29 07:47
public class Test {
public static void main(String[] args) throws Exception {
final Object lock="";
Thread t1=new Thread(){
public void run(){
try {
System.out.println("t1 wait begin");
synchronized (lock) {
System.out.println("t1 get lock, wait begin");
lock.wait();
System.out.println("t1 wait end,release lock");
lock.notifyAll();
}
System.out.println("t1 wait end");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
t1.start();
System.out.println("t1 start and sleep");
for(int i=0;i<10000001;i++){
if(i==10000000)
System.out.println("i end");
}
Thread.sleep(5000);
System.out.println("sleep(5000) end");
System.out.println("main lock begin");
synchronized (lock) {
System.out.println("main get lock");
lock.notify();
System.out.println("notify");
Thread.sleep(10000);
System.out.println("sleep 10000 end");
System.out.println("main wait begin ");
lock.wait();
System.out.println("main wait end");
}
System.out.println("main lock end");
}
}
sleep()用于暂时停止一个线程的执行, wait()方法的作用是让当前线程释放其所持有的"对象互斥锁",进入wait队列(等待队列);而notify()/notifyAll方法的作用是唤醒一个或所有正在等待队列中等待的线程,并将它(们)移入等待同一个"对象互斥锁"的队列。
0 0
- wait、sleep、notify、notifyAll的区别
- wait、sleep、notify、notifyAll的区别
- wait、sleep、notify、notifyAll的区别
- wait、sleep、notify、notifyAll的区别
- wait、sleep、notify、notifyAll的区别
- wait(),notify(),notifyAll()及sleep() 和wait()的区别
- wait(),notify(),notifyAll()及sleep() 和wait()的区别
- sleep,yield,join,notify,wait,notifyAll区别
- sleep & wait | notify | notifyAll
- sleep & wait | notify | notifyAll
- wait,notify,notifyAll,sleep
- (四)wait()、notify()、notifyAll()方法||wait()与sleep()的区别
- sleep synchronized wait notify notifyAll
- synchronized,sleep,wait,notify,notifyAll
- Java:sleep、wait、notify、notifyAll
- 多线程wait-notify;notifyall.sleep
- wait|notify|notifyAll|sleep|volatile
- wait, sleep, notify, notifyall, join
- 获取本地音频文件 FreeStreamer播放本地音频
- 广度优先遍历
- python中将源码加入系统环境中
- leetcode 75:Sort Colors
- AFN详解(检测网络状态,下载,上传,数据请求)
- wait、sleep、notify、notifyAll的区别
- 合服相关笔记
- 基于nrf51822的蓝牙4.0 dht11测温开发
- HttpServletRequest介绍
- JS函数重载解决方案
- Set Matrix Zeroes
- 数据库之SQL语言
- HttpServletRequest对象方法的用法
- C++指针与引用(二):常用const指针,增强程序的健壮性