《Java并发编程的艺术》源码下载
作者:方腾飞,魏鹏,程晓明
《Java并发编程的艺术》纸质书购买地址=》天猫(价最低) 当当 京东 互动 亚马逊
《Java并发编程的艺术》电子书购买地址=》亚马逊
请使用JDK1.7及其以上版本编译源码,源码的任何问题可以通过评论告诉我们。
- 通过附件下载源码:ArtConcurrentBook
- 从SVN check out 源码:http://code.taobao.org/svn/ifevebook/trunk/ArtConcurrentBook
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Java并发编程的艺术》源码下载
在《 Java 并发编程艺术》书中有这样一段话
多线程竞争锁时会引起上下文切换,在多核处理数据时可以将数据的 ID 按照 Hash 算法取模分段,不同的线程处理不同段的数据。
关于这个我以线程池为例,可以理解为使用一个大的线程池不如使用多个小的线程池,将任务通过 hash 算法分散到不同的线程池中,线程池的 Channel 是阻塞队列实现,高并发抢任务会造成线程阻塞,导致上下文切换,因此这种分散的方法降低单个线程池抢任务的并发量。
这样理解有问题吗?
你这么理解是有问题的,
你这么理解是有问题的,以你说的线程池,你拆分多个小线程池,hash后的数据落在小的线程池里面,小的线程池里面的线程还是会存在锁的,因为这里面的线程会竞争去执行同一条数据;书里面的意思是使用无锁并发编程,意思就是你使用多线程处理大量数据时,不加锁的情况下,会存在多个线程执行同一条数据的问题,所以一般是加锁,但是加锁会导致上下文频繁切换,所以推荐使用无锁编程,做法就是将数据分段,一个线程只处理一段的数据,这样就不存在前面的问题了,也没有加锁,是这样的
你好,源码下载不了
抱歉,可以了。没法删除评论吗
麻烦修正下附件中源码的编码格式, 有的文件是 UTF8, 有的是 GB2312, 有的是ANSI, 等等乱七八糟的.