`

《深入Java并发》- 目录(v0.1)

阅读更多

Author : mercyblitz
Version: 0.1
Update : 2010-08-27 4:26PM
Email:  mercyblitz@gmai.com


1.  基础    
    1.1  摩尔定律  

    1.2  多处理器时代
        1.2.1  对称多处理( Symmetric Multi-Processor, a.k.a SMP)
        1.2.2  非对称多处理( ASymmetric Multi-Processor, a.k.a ASMP)
        1.2.3  非统一内存访问( a.k.a NUMA)

    1.3  共享内存(Shared Memory)

    1.4  CPU 缓存
        1.4.1  缓存一致性(Cache coherence)
        1.4.2  MESI协议(MESI protocol)

    1.5  线程
        1.5.1  起源(Source)
        1.5.2  优势(Advantages)
        1.5.3  类型(Types)
        1.5.4  模型(Models)
        1.5.5  实现(Implementations)
        1.5.6  安全(Security)

    1.6  内存模型  (Memory Model)
        1.6.1  可见性(Visibility)
        1.6.2  原子性(Atomicity)
        1.6.3  顺序性(Order)
    
    1.7  互斥( Mutual Exclusion)
        1.7.1  阻塞同步( Blocking Synchronization)
        1.7.1.1 临界区(Critical Section)
        1.7.1.2  锁(Lock)
            1.7.1.2.1  类型(Types)
            1.7.1.2.1.1  自旋锁(Spinning Lock)
            1.7.1.2.1.2  标签锁(Ticket Lock)
            1.7.1.2.1.3  偏向锁(Biased Lock)*
            1.7.1.2.2   数据库锁(Database Lock)*
                1.7.1.2.2.1   消极锁
                1.7.1.2.2.2   乐观锁
            1.7.1.2.3  问题(Problems)
                1.7.1.2.3.1  活锁(Live Lock)
                1.7.1.2.3.2  死锁(Dead Lock)
                1.7.1.2.3.3  优先级倒置(Priority Inversion)
                1.7.1.2.3.4  其他(Others)            

        1.7.2 非阻塞同步(Non-Blocking Synchronization)
            1.7.2.1  Wait-free算法
                1.7.2.1.1  比较交换算法(Compare-And-Swap, a.k.a CAS)
                1.7.2.1.2  连接加载/条件存储(Load-link/Store-conditional)
            1.7.2.1.3  ABA问题
            1.7.2.2  Lock-free
            1.7.2.3  Obstruction-free

        1.7.3  重进入(Reentrant)

        1.7.4  监视器(Monitor)
            1.7.4.1  等待和信号(Wait and Signal)
            1.7.4.2  条件变量(Condition Variable)

        1.7.5  信号灯(Semaphore)

        1.7.6  双检查锁(Double-Checked Locking, a.k.a DCL)

    1.8  内存栅栏(Memory Barrier/Fence)

    1.9  一致性模型(Consistency Model)
        1.9.1  原子一致性( Atomic consistency)
        1.9.2  连续一致性(Sequential  Consistency)
        1.9.3  因果一致性(Causal Consistency)        
        1.9.4  释放一致性(Release Consistency)        
        1.9.5  最终一致性(Eventual Consistency)
        1.9.6  Delta一致性(Delta Consistency)        
        1.9.7  弱一致性(Weak Consistency)        
        

    1.10  并发控制(Concurrency Control)
        1.10.1  软件事务存储(Software Transactional Memory,a.k.a STM)
                 
2.  Java 基础
    2.1  Java同步原语
        2.1.1  synchronized关键字
        2.1.2  volatile 关键字
        2.1.3  CAS操作-AtomicX

    2.2  Java内存模型
        2.2.1  可见性(Visibility)
        2.2.2  原子性(Atomicity)
        2.2.3  顺序性(Order)
        2.2.4  Happens-Before

    2.3  java.lang.Thread
        2.3.1  状态(State)
        2.3.2  启动-Thread.start方法
        2.3.3  弃用Thread.stop, Thread.suspend 和 Thread.resume方法
        2.3.4  终止Thread.interrupt和Thread.interrupted方法
        2.3.5  Thread.join方法
        2.3.6  Object.wait/notify方法
        2.3.7  Thread.wait方法


3.  Java并发框架
    3.1J.U.C框架
        3.1.1  同步
            3.1.1.1  核心-AbstractQueuedSynchronizer
            3.1.1.2  重进入锁-ReentrantLock
            3.1.1.3  重进入读写锁-ReentrantReadWriteLock
            3.1.1.4  条件变量-Condition
            3.1.1.5  新通知/信号机制-LockSupport

        3.1.2  限制
            3.1.2.1  CountDownLatch
            3.1.2.2  CyclicBarrier
            3.1.2.3  信号灯(Semaphore)

        3.1.3  原子操作  
                  3.1.3.1  Atomic*类
                  3.1.3.2  操作实现-sun.misc.Unsafe

        3.1.4  线程安全集合
                  3.1.4.1  CopyOnWriteArrayList和CopyOnWriteArraySet
                  3.1.4.2  ConcurrentSkipListMap和ConcurrentSkipListSet
                  3.1.4.3  ConcurrentHashMap
                  3.1.4.4  ArrayBlockingQueue
                  3.1.4.5  LinkedBlockingQueue和ArrayBlockingDueue
                  3.1.4.5  PriorityBlockingQueue    

        3.1.5  线程池
                  3.1.5.1  Executor
                  3.1.5.2  ThreadPoolExecutor
                  3.1.5.3  Callable和Future
                  3.1.5.4  ScheduledExecutorService
                  3.1.5.5  Executors

4. JVM并发实现 **
    4.1  线程(Thread)实现
    4.2  监视器(Monitor)实现
    4.3  可见性实现
    4.4  原子性实现
    4.5  顺序性实现
    4.6  其他

 


说明:

    1. 在标题后面带有符号“*”,代表这个内容可能有点于偏离主题。带有“**”的内容,可能比较难以理解。


   2. 由于知识体系比较繁杂,组织起来比较宽难,因此目录结构很有可能不断地更新。该文章的Update部分或者标题也会同步更新。


    3.一旦章节的内容完结,目录会即时更新链接,请大家留意。

 

    4.作者能力和学识有限,如果读者还有更加感兴趣的议题,或者任何错误、意见和建议,不妨直接留言或者发邮件来讨论。如果能够合著的话,那是更加完美了。


    5.文章转载前,请联系文章的作者。

 

 

谢谢 ,EOF!

 

12
2
分享到:
评论
9 楼 littlecar 2011-07-19  
这个。。啥时候出来哈
8 楼 mercyblitz 2011-04-11  
snake1987 写道
很期待
再次膜拜,祝你早日成为技术大牛


我要开始“给力”了,一直没有时间整理!向很多人道歉!
7 楼 snake1987 2011-04-11  
很期待
1.9  一致性模型(Consistency Model)
        1.9.1  原子一致性( Atomic consistency)
        1.9.2  连续一致性(Sequential  Consistency)
        1.9.3  因果一致性(Causal Consistency)       
        1.9.4  释放一致性(Release Consistency)       
        1.9.5  最终一致性(Eventual Consistency)
        1.9.6  Delta一致性(Delta Consistency)       
        1.9.7  弱一致性(Weak Consistency)       

最近在看JSR133,发现里面数学推断的逻辑还是太多了,英文的表示上也有点难以理解

很期待这一章

还有,感觉博主的知识结构跟小弟的目前学习目标惊人的相似

1.从《Concurrent in practice》开始
2.研究JDK各并发类,最终全部理解AQS实现原理(同时进一步了解非阻塞算法)
3.研究JSR133,同时实践
4.同时,开始结合操作系统概念进一步理解
5.研究一些流行并发框架的源代码

很期待你的书
看到你的博客分类,还有一些文章,非常佩服你,java4年,当了2年+培训讲师,同时一边工作,还学了JVM层面的,并发层面的,J2EE层面的,都是有一定的深入的,真的很厉害了

再次膜拜,祝你早日成为技术大牛
6 楼 yangfuchao418 2010-10-05  
麻烦问下 java 并发 主要用在哪些地方?
5 楼 mercyblitz 2010-09-02  
bamanzi 写道
不研究Actor模型么? 基于共享内存-锁-同步的并发在可伸缩性上表现很差,如果并行模块之间的交互比较多的花,应用一上规模了性能就严重不行,actor模型应该才是方向。


不好意思,你可能理解错了,Acter模型是软件级别的并发模型,而硬件平台不是这样的。

我看在什么地方插入这个内容,谢谢你!
4 楼 bamanzi 2010-09-02  
不研究Actor模型么? 基于共享内存-锁-同步的并发在可伸缩性上表现很差,如果并行模块之间的交互比较多的花,应用一上规模了性能就严重不行,actor模型应该才是方向。
3 楼 mercyblitz 2010-08-27  
beneo 写道


可否加入SEDA模型等当下很流行的框架模型



SEDA,我不是太清楚,呵呵,如果你有想法的话,深入了解之后,再编写一下,就是我最期待的“合著”哦!
2 楼 mercyblitz 2010-08-27  
beneo 写道
不是很明白
            3.1.2.1  CountDownLatch
            3.1.2.2  CyclicBarrier
            3.1.2.3  信号灯(Semaphore)

知道这三者都能实现同样的功能,不清楚三者能够实现什么不同的功能,还是同一功能的三个层次?

如果能联系与区别一起讲就更好


感觉编排不错

可否加入SEDA模型等当下很流行的框架模型

最后,超期待啊


我归纳成多线程对资源的“限制”操作,他们的之间的区别,CountDownLatch是一次性的,CyclicBarrier是可回收的,Semaphore则是自控的。
1 楼 beneo 2010-08-27  
不是很明白
            3.1.2.1  CountDownLatch
            3.1.2.2  CyclicBarrier
            3.1.2.3  信号灯(Semaphore)

知道这三者都能实现同样的功能,不清楚三者能够实现什么不同的功能,还是同一功能的三个层次?

如果能联系与区别一起讲就更好


感觉编排不错

可否加入SEDA模型等当下很流行的框架模型

最后,超期待啊

相关推荐

Global site tag (gtag.js) - Google Analytics