wait、notify与notifyAll的使用
2014-03-20 16:24
323 查看
package www.td;
public class ThreadDemo {
public static void main(String[] args) {
System.out.println("主线程");
NotifiThread nt=new NotifiThread();
nt.start();
synchronized (nt) {
try {
System.out.println("等待nt线程执行完毕。。");
nt.wait();
System.out.println("xxxxxxxx");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class NotifiThread extends Thread{
@Override
public void run() {
//1、synchronized (this) {
synchronized (this) {
try {
Thread.sleep(2000);
System.out.println("子线程");
notify();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//notify();
//}
}
}
}
wait与notify的使用在synchronized ()块中,如果没有回报java.lang.IllegalMonitorStateException异常
notify wait 为什么放在synchronized块中 why?
答:wait 是释放锁的,notify是唤醒锁的,而锁有是在synchronized()块中。
notifyAll是唤醒多个
public class ThreadDemo {
public static void main(String[] args) {
System.out.println("主线程");
NotifiThread nt=new NotifiThread();
nt.start();
synchronized (nt) {
try {
System.out.println("等待nt线程执行完毕。。");
nt.wait();
System.out.println("xxxxxxxx");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class NotifiThread extends Thread{
@Override
public void run() {
//1、synchronized (this) {
synchronized (this) {
try {
Thread.sleep(2000);
System.out.println("子线程");
notify();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//notify();
//}
}
}
}
wait与notify的使用在synchronized ()块中,如果没有回报java.lang.IllegalMonitorStateException异常
notify wait 为什么放在synchronized块中 why?
答:wait 是释放锁的,notify是唤醒锁的,而锁有是在synchronized()块中。
notifyAll是唤醒多个
相关文章推荐
- 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
- Object中的wait,notify,notifyAll基本使用
- 如何在 Java 中正确使用 wait, notify 和 notifyAll
- 最简实例说明wait、notify、notifyAll的使用方法
- 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
- Java的wait(), notify()和notifyAll()使用小结
- Object中的wait,notify,notifyAll基本使用
- Java中的synchronized、Object.wait()、Object.notify()/notifyAll()的使用
- 关于synchronized、wait、notify已经notifyAll的使用
- android-多线程设计wait、notify、notifyall、synchronized的使用机制 - 随心
- 最简实例说明wait、notify、notifyAll的使用方法
- 如何使用wait(), notify() and notifyAll() – Java
- 转载--最简实例说明wait、notify、notifyAll的使用方法
- java 多线程 wait()和notify(),notifyAll()的使用
- wait() notify() notifyAll() 使用范例
- android-多线程设计wait、notify、notifyall、synchronized的使用机制
- 如何在 Java 中正确使用 wait, notify 和 notifyAll
- Thread_wait、notify、notifyAll的使用方法
- 最简实例说明wait、notify、notifyAll的使用方法
- 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例