Java Concurrency in Practice 是一本讲解 JVM 下并发编程知识的经典作品,建议有志于资深的 Java 工程师将其纳入自己的读书计划中,相信一定会大有裨益。
在阅读这本书的过程中,我发现中文版本有很多显而易见的错误,尤其是代码里条件判断有时根本是反着来的(本应是>=
的条件,书里面却是<
)。Google 搜索之后发现在 http://jcip.net/errata.html 有英文原版的勘误表,由于中文版本没有勘误表,故翻译在此,希望可以有所帮助。
使用之前请确认自己手中的书籍版本是否相符。
本文适用的中文版本
- 书名:《Java 并发编程实战》,Java Concurrency in Practice
- 作者:Brain Goetz, Tim Peierls 等
- 译者:童云兰 等
- ISBN:978-7-111-37004-8
- 出版社:机械工业出版社
- 出版时间:2012.2 第一版,2018.9 重印
- 定价:69 元
- 豆瓣链接:https://book.douban.com/subject/10484692/
勘误数据来源
中文版勘误表
页码 | 勘误 |
---|---|
p.5 | 程序清单 1-1 下面的第一段,someVariable++ 应为value++ |
p.6 | 程序清单 1-2,Value 应为value |
p.53 | 4.3 节上面的最后一段,getLocation 应为getLocations |
p.58 | 程序清单 4-11,SafePoint(int x, int y) 构造函数的函数体可以精简为set(x, y) |
p.62 | 程序清单 4-16,if(contains) 应为if(!contains) |
p.75 | 5.3.1 第一段,DiskCrawler 应为FileCrawler |
p.100 | 程序清单 6-7 下面第二段,在 ExcutorService 关闭后提交的任务将由“拒绝执行处理器(Rejected Execution Handler)来处理 表述有误,Rejected Execution Handler 是仅在ThreadPoolExecutor 实现中提供的,并非所有的ExecutorService 实现都具备此功能 |
p.122 | 第二行,那么调用 close 或 wakeup 方法会使线程抛出 ClosedSelectorException ,只有close 方法会抛出该异常,wakeup 方法不会 |
p.163 | 程序清单 9-6,第一个if(runningTask != null) 判断条件应为(runningTask == null) |
p.214 | 程序清单 12-9,Executors.newFixedThreadPool(MAX_SIZE) 方法调用应该增加第二个参数threadFactory |
p.229 | 程序清单 13-3,代码倒数第三行if (System.nanoTime() < stopTime) 判断条件里的< 应为>= |
以上就是中文版《Java 并发编程实战》的勘误表,如有遗漏,欢迎通过文末留言联系我进行补充。