线程通信,使用Lock和Condition接口:
wait和notify方法,只能被同步监听锁对象来调用,否则报错,IllegalMonitorStateException.
因为Lock机制根本没有同步锁,也就没有自动获取锁和自动获取锁的概念,所以Lock机制不能 调用wait和notify方法.
解决方案:
Java5中提供了Lock机制同时提供了处理Lock机制的通信控制的Condition接口
从Java5开始,可以:
1:使用Lock机制取代synchronized代码块和synchronized方法
2:使用Condition接口对象的await,signalAll方法取代Object类中的wait,notify,notifyAll方法.
网友评论