13.11 文献
[Lea99]:Concurrent Programming in Java: Design Principles and Patterns, 2d. ed., Doug Lea, Prentice Hall, 1999.
[PPP]:Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin, Prentice Hall, 2002.
[PRAG]:The Pragmatic Programmer, Andrew Hunt, Dave Thomas, Addison-Wesley, 2000.
[1] 原注:来自私人邮件。
[2] 原注:宇宙射线、狼来了等。(译者按:作者在这里开了个小玩笑。程序员常把不能复现的程序错误的原因归结为宇宙射线等偶发性和无法修正的问题。)
[3] 原注:见后文“深入挖掘”一节。
[4] 原注:见后文“路径数量”一节。
[5] 原注:[PPP]。
[6] 原注:参见后文“客户端/服务器的例子”一节。
[7] 原注:[PRAG]。
[8] 原注:[Lea99]。
[9] 原注:http://en.wikipedia.org/wiki/Producer-consumer。
[10] 原注:http://en.wikipedia.org/wiki/Readers-writers_problem。
[11] 原注:http://en.wikipedia.org/wiki/Dining_philosophers_problem。
[12] 原注:参见后文“方法之间的依赖可能破坏同步代码”一节。
[13] 原注:临界区是为了确保程序正确而要阻止同时使用的代码区域。
[14] 原注:见后文“增加吞吐量”一节。
[15] 原注:参见附录A“死锁”一节。
[16] 原注:你是否知道,Java的线程模型并不保证线程抢先?现代操作系统支持抢先线程,所以你可以“免费”获得这一特性。即便如此,JVM也没有做出保证。
[17] 原注:严格说来并非如此。JVM不保证抢先线程,故在不抢占线程的系统上,某个特殊的算法可能一直能工作。反之亦然,但会有其他的原因影响。
[18] 原注:http://www.alphaworks.ibm.com/tech/contest。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。