《Java并发编程的艺术》勘误和支持

本书源码下载地址

第一版第一次印刷勘误

第2页,thread.join();这句代码和上面一行代码交换位置。
第3页,第一个表格“并发比串行快多少”的第五行,慢=>差不多。
第9页,表2-1第三行缓存行。第一个缓存=》CPU高速缓存,缓存线=》缓存行,
第9页,表2-1第三行缓存行。需要使用多个主内存读周期=》现代CPU需要执行几百次CPU指令
第18页,代码少了第一行 public class Counter {

第一版第二次印刷勘误

第一版第三次印刷勘误

第一版第四次印刷勘误

  • 第168页LinkedBlockingQueue 有界阻塞队列 修改成 无界阻塞队列。
  • 第5页的源码,DeadLockDemo里面 private static String A = “A”; 这一行的private拼写少了个e。
  • 第112页的源码,work.get(count)后面少了个分号;。
  • 第186页的源码,代码第2、3行,user应改为User。
  • 第210页的图,图10-2左上角的类应该是Runnable;图10-3中有2个create漏了字母e,1个execute漏了字母2(找晓明修改下)
  • Trackback 关闭
  • 评论 (5)
    • 冰雨
    • 2021/10/12 8:25下午

    问下各位,第一章测试提到的dump是个啥东西呀?是每个java虚拟机内置的一个线程工具吗?

    • 余空行
    • 2022/02/01 3:40下午

    尊敬的作者:
    您好!我正在拜读您的《Java并发编程的艺术》,在运行(环境:Oracle JDK8)代码清单4-9 Shutdown.java的时候,发现一个有趣的现象:去掉Runner.on的volatile修饰符,线程2也能被中止。经过测试,如果同时去掉 !Thread.currentThread().isInterrupted(),那么线程2就不会中止(由于可见性)。
    希望作者能帮忙解答这个现象的原因,谢谢。

    • 土鱼
    • 2022/02/11 1:32下午

    第版次:2015年7月1版第1次印刷
    第144页最下方导数第二行,“如果当前线程获取了 写锁 或者写锁未被获取”;此处应该是“如果当前线程获取了 读锁 或者写锁未被获取”

    • 张恒清
    • 2022/03/12 12:27上午

    原子操作类,书上说是13个,但是书上提供的只有12个。并且JDK源码中atomic包下也只有12个类。
    是不是搞错了?

    • 浅玉
    • 2022/03/31 4:57下午

    《Java并发编程的艺术》 4.1.4 线程的状态 Java线程状态变迁如图4-1示 ,图中有误 Thread有join(),Object 没有(图中为Object.join())

return top