上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.8 参考资源
1. Mark Grand. Patterns in Java, Volume 1: A Catalog of Reusable Design Patterns Illustrated with UML, Second Edition.Wiley, 2002.
2. Doug Lea. Concurrent Programming in Java: Design Principles and Patterns, Second Edition. Addison Wesley, 1999.
3. JDK 标准库源代码.(参见链接[6])
[1]指java.lang.Object的wait和notify方法。
[2]所谓告警,类似于智能手机监视其电池的电量。当可用电量少于特定值(如14%)时,手机就会提醒用户电量不足。
[3]心跳任务通过定时(如每2s)执行一个动作(如给服务器发送一个请求)来检测目标服务是否可用。
[4]在本案例中,AlarmAgent的sendAlarm方法由一个专门的线程调用(详情可见第14章的案例),因此这里唤醒被暂挂的sendAlarm方法执行线程时调用signalAfter方法即可,而无须调用broadcastAfter方法。
[5]在这种情形下,调用notify方法也是类似的。这是因为notify方法唤醒的线程具体等待哪个保护条件的线程是无法保证的,因此,也可能出现这样的情形:当保护条件predicateA成立时,某线程调用Condition实例的notify方法所唤醒的线程恰好是之前被该Condition实例所阻塞的等待保护条件predicateB的线程。