《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 are closed
  • Comments (37)
    • 夜阳
    • 08/11. 2015 12:11am

    18页代码少了第一行public class Counter {

    76页表3-9把表3-8复制了一遍,完全错误

    • 下雨不打伞
    • 09/06. 2015 9:17am

    第5页的源码,DeadLockDemo里面 private static String A = “A”; 这一行的private拼写少了个e

    • abyjun
    • 09/13. 2015 9:01pm

    请问,37页的图中的读事物写的是读高32位,是不是应该改为读整个long型变量

    • yangcheng33
    • 10/07. 2015 5:56pm

    210页,图10-2左上角的类应该是Runnable;图10-3中有2个create漏了字母e,1个execute漏了字母2
    186页,代码第2、3行,user应改为User

    • yangcheng33
    • 10/08. 2015 1:40am

    112页,代码倒数第12行,漏掉了分号

    • 爪云
    • 12/28. 2015 9:55am

    31页, 第五行, volaLile 拼写错误, 应该是volatile

    • wuxiaolinchn
    • 01/17. 2016 10:44am

    5页,1.2死锁代码,2个重写Runnable接口的run方法都写成了publicvoid,两个关键字之间缺少空格。

    • qiguan123
    • 01/27. 2016 7:24pm

    164页最后一行,应该是“如果p的next节点是null”吧。

    • superheizai
    • 02/01. 2016 12:06pm

    59页,第三章,3.6.5标题,“溢出”==》“逸出”
    69,第三种,3.8.2第一行,(instance=new Singleton();),实际上例子给的是(instance= new Instance():)

    • superheizai
    • 02/02. 2016 9:38am

    虽然么有回复,但是我要继续报错:)
    第五章,5.2.2中5.自定义同步组件-TwinsLock部分,关于资源数的描述部分,“status为2”应该是“state为2”。
    第六章, 6.1.3的2.初始化segmentShift和segmentMask,其中”segmentSHift最大值是16″,不是最大值,是最小值。

    • 魏 鹏
    • 04/06. 2016 11:28am

    第三页

    Content Switch –> Context Switch

      • yoxibaga
      • 10/06. 2016 4:58pm

      魏老师,请教一个问题,第四章最后【基于线程池的简单Web服务器】的demo,server启动之后,URL如何写呢?basepath = ‘F:\\workspace’

    • xiaohaizi
    • 04/27. 2016 8:51pm

    你好 ,第4.4.4小节,115页 代码中 out.flush() 应该在socket.getOutputStream().write(array,0,array.length);之前调用,
    否则,内容会先于报文头发送。

    • sirding
    • 09/08. 2016 5:20pm

    338页
    “因为CyclicBarrier设置了拦截线程的数量是2,所以必须等代码中的第一个线程和线程A 都执行完之后,才会继续执行主线程,然后输出2,所以代码执行后的输出如下。”

    逻辑应该是A线程一定是先执行的,但第一个线程和主线程的执行顺序是不一定的。所以执行的结果应该3、2、1或是3、1、2

    • MindHacks
    • 12/21. 2016 9:40pm

    您好,第12页,第5行,第8行的Synchronized拼写错误,被拼成了Synchonized

    • 16789Mauersu
    • 01/12. 2017 5:09pm

    对P134页的TwinsLock的unlock方法存疑

    public boolean tryReleaseShared(int returnCount) {
    for(;;) {
    int current = getState();
    int newCount = current + returnCount;
    if(compareAndSetState(current, newCount)) {
    return ture;
    }
    }
    }
    unlock方法及调用方法,都没有对当前线程进行判断,判断其是否持有锁,我觉得应该加上这个判断,因为只有持有所得线程才能释放锁

      • 16789Mauersu
      • 01/12. 2017 5:14pm

      而且误操作,会导致整个锁状态处于异常状态

        • 16789Mauersu
        • 01/12. 2017 5:17pm

        同理P123的Mutex类

          • helloworld
          • 02/13. 2017 9:45pm

          不好意思哇,以上言论全部有误,个人没法删除,麻烦管理员帮忙删除下,以防误导其他人,谢啦

    • yanhui
    • 02/11. 2017 6:10pm

    刚看书到第3页,看过表1-1的表格后,有点不太懂。

    书上说当执行并发累加不超过百万时,速度要比串行要慢。

    为什么超过百万时,并行的速度要快近一倍呢?是不是CPU的双核同时运行的结果。如果在单核CPU上,分时调度的结果一定是慢的啊。

    请各位大神给予解答,谢谢。

    • helloworld
    • 02/15. 2017 4:42pm

    文字错误
    P147
    表5-12
    对比项列“当前线程释放锁并进入等待状态,在等待状态中不响应中断”疑似错误
    应该为“当前线程释放锁并进入等待状态,在等待状态中响应中断”

      • helloworld
      • 02/15. 2017 4:43pm

      多了个“不”字

        • helloworld
        • 02/15. 2017 4:51pm

        不好意思哇,以上言论再次全部有误,个人没法删除,麻烦管理员帮忙删除下,以防误导其他人,谢啦 🙁

    • style920
    • 03/03. 2017 3:51pm

    版次: 2016年10月份第一版第六次印刷
    第七章 java中的13个原子操作类
    只有12个,在7.2原子更新数据AtomicIntegerArray重复

    • 猪会飞
    • 03/05. 2017 7:53pm

    表1-1测试结果中:循环次数为10万次的这行,并发比串行快多少的结果应该是“快”吧???

    • zlsf
    • 03/23. 2017 10:38pm

    您好,正在拜读该书。43页给予保守策略的…..屏障插入策略。下面4点,最后两条有2个volatile读操作后,的规则。是不是应该有一个是读前,一个是读后

      • zlsf
      • 03/23. 2017 10:44pm

      是我理解错误,没看到下面的内容,请忽略这个反馈。抱歉

    • lt199025
    • 05/28. 2017 11:41am

    你好,目前正在拜读该书,发现一个问题
    版次:2016年4月第1版第5次印刷
    描述:第2章,第10页的第7行,提到8.1.4节,但我没在该书中找到相应的的章节,不知是不是印刷的问题,如果是,那么应该是哪个章节

    • wkzq
    • 09/24. 2017 10:05am

    第一版第一次印刷
    146页第四行“RentrantReadWriteLock”少了个e

    • sanshiz
    • 11/08. 2017 11:09pm

    01,案例代码太简单,排版不好
    02,注释有很多欠缺,并且注释有的地方很晦涩

    • sanshiz
    • 11/09. 2017 1:14am

    ScheduledThreadPoolExecutor, ThreadPoolExecutor, 作者你確定都有submit()方法,10章裏面很多地方這樣寫,比如p212

You must be logged in to post a comment.

return top