多线程编程入门(4):wait,notify方法使用注意事项
来源:互联网 发布:ios编写软件 编辑:程序博客网 时间:2024/06/08 14:28
1 问题
2 代码
public class WaitAndNotify1 { public static void main(String[] args) { Thread t1=new Thread(new Runnable(){ @Override public void run(){ System.out.println("Thread-1"); try { synchronized (this) { wait(); System.out.println("Thread-1 after wait"); } } catch (InterruptedException e) { e.printStackTrace(); } } }); Thread t2=new Thread(new Runnable(){ @Override public void run(){ try { Thread.sleep(4000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Thread-2"); synchronized (this) { notify(); System.out.println("Thread-2 after notify"); } } }); t1.start(); t2.start(); }}
3 解答
http://stackoverflow.com/questions/37672929/why-do-wait-and-notify-function-not-working-properly-on-same-class-lock
4 后记
当调用wait方法时出现异常时(IllegalMonitorStateException),这时请注意查看官方api说明文档,而不是立马baidu或者google.应该仔细理解每句话的含义加以实践证明.
5 修改之后的代码
图中1,2,3,4处应该为同一个对象,即同一把锁.
0 0
- 多线程编程入门(4):wait,notify方法使用注意事项
- wait() notify使用注意事项
- 多线程编程 -wait(),notify()/notityAll()方法
- 多线程编程 -wait(),notify()/notityAll()方法
- 多线程编程 -wait(),notify()/notityAll()方法 .
- 多线程编程 -wait(),notify()/notityAll()方法
- java 多线程notify wait 注意事项
- 多线程编程入门(2):线程的通信(wait,notify)
- JAVA多线程编程:wait() 和 notify() 方法示例
- 多线程并发中的简单使用wait和notify的方法
- JAVA5多线程---Condition使用---线程通信 --wait及notify方法
- 多线程中的notify和wait方法的使用
- 多线程中的notify和wait方法的使用
- Java 多线程编程 wait()、notify() -- JAVA 进阶
- 多线程—wait,notify(针对方法synchronized)
- java多线程:wait(),notify(),notifyAll()方法
- 线程锁 多线程安全 wait、notify方法
- 多线程中的wait()和notify()方法
- 开源Json处理工具是如何帮我们解析Json的
- ORACLE11G OCP-051 第87题
- local_irq_save 与 local_irq_restore
- <《模板》扩展欧几里德--求二元一次方程-及中国剩余定理>
- PL/SQL的使用
- 多线程编程入门(4):wait,notify方法使用注意事项
- UVA 1386 Cellular Automaton
- HTTP
- 大数据量查询优化
- sap abap 性能优化(二)
- 如何用HttpWebRequest通过代理IP post 到https的网站?
- C#文件操作
- Android Device Monitor查找手机内存存储的文件夹位置
- Sqlite的通配符