`

《深入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模型等当下很流行的框架模型

最后,超期待啊

相关推荐

    商业编程-源码-ImageUpon v0.1 英文版.zip

    《ImageUpon v0.1 英文版》是一款专为商业环境设计的编程源码,它主要用于图像处理和管理。这个软件的英文版本提供了一套完整的解决方案,旨在帮助开发者高效地处理图像,优化图片资源在商业应用中的使用。源码的...

    java计算机考试模拟软件V0.1

    【Java计算机考试模拟软件V0.1】是一款用于帮助考生准备计算机相关考试的软件,它提供了丰富的模拟试题,便于用户进行自我测试和复习。这款工具的源码是开放的,这意味着开发者可以深入研究其内部机制,学习如何构建...

    Clock V0.1 java.zip

    《Java时钟应用:Clock V0.1》 在编程领域,尤其是Java开发中,创建一个功能丰富的时钟应用程序是一项常见的课程设计任务。这个名为"Clock V0.1 java.zip"的项目,就是一个以Java语言编写的时钟程序,旨在提供时间...

    商业编程-源码-Ice GD Cool Vote v0.1.zip

    《商业编程:深入理解Ice GD Cool Vote v0.1源码》 在IT行业中,商业编程是企业级软件开发的核心,而源码则是这一切的基础。本文将深入探讨名为"Ice GD Cool Vote v0.1"的商业编程项目,通过解析其源码,揭示其内在...

    成绩评分系统源码V0.1.zip

    成绩评分系统源码V0.1....通过深入研究这个成绩评分系统源码V0.1,开发者可以了解上述知识点的实际应用,提升自己的编程技能和项目管理能力。同时,也可以根据实际需求对其进行二次开发,以满足特定场景下的功能扩展。

    商业编程-源码-绝地文章管理系统(KArticle) v0.1.zip

    《绝地文章管理系统(KArticle) v0.1》是一...通过深入研究《绝地文章管理系统(KArticle) v0.1》的源码,开发者不仅可以提升自己的编程技能,还能了解到实际项目中的问题处理和优化策略,对于提升商业编程能力大有裨益。

    Kotlin Coroutines by Tutorials v0.1

    《Kotlin Coroutines by Tutorials》是一本深入讲解Kotlin协程技术的书籍,涵盖了从基础概念到高级应用的各个方面。通过学习本书,开发者可以更好地理解和掌握Kotlin协程的强大功能,并将其应用于实际项目中,提高...

    javarfid-0.1.tar.gz_Java编程_Java_

    压缩包子文件“java-rfid_v0.1”很可能包含了以下内容: 1. **源代码文件**:.java文件,这些是Java编程的源代码,可能包含RFID读取器的驱动程序、数据解析类、事件监听器等。 2. **构建脚本**:如build.gradle或...

    嵌入式WEB服务器及远程测控应用详解V0.1

    10. **Java中的多线程技术**: 支持并发处理,提高系统效率。 11. **Java画图板及控件**: 提升用户交互体验。 #### 六、示例与实践 文档中提到了几个具体的示例,如远程摄像头监控、温度采集显示、LED控制等。这些...

    Concurrency Utilities for Java EE

    - Doug Lea作为Java并发领域的专家,其研究成果被广泛应用于Java标准库中,特别是在`java.util.concurrent`包的设计上。 - 他对并发模型、锁机制、线程池等方面有深入研究,这些都为企业级应用提供了强大的并发...

    2014210-2014307笔记随笔

    综合这些文件,我们可以预期这份笔记集合涵盖了Java并发编程的高级主题,网络爬虫的实现技巧,以及分布式数据库系统的深入理解。这些知识点对于任何希望在Java开发、大数据处理或云计算领域深化技能的IT专业人员都极...

    photomanagerjava

    《Java技术在照片管理软件中的应用——以Haradriam PhotoManager v0.1为例》 在当今数字化时代,照片的存储与管理已经成为日常生活的重要部分。为了帮助用户更有效地整理和检索自己的照片,各种照片管理软件...

    asd.zip_project

    在这个压缩包中,我们注意到一个名为“XULEngine4J v0.1”的子文件,这可能是一个Java实现的库或框架,用于执行某种形式的自动化测试。 首先,让我们深入了解一下IP测试。IP(Internet Protocol)测试确保了设备或...

    Nginx+Tomcat+MemCached_集群配置

    "系统实施文档-Nginx+Tomcat+MemCached_集群配置手册.V0.1.doc"则可能是更全面的集群部署指南,内容可能包括安装和配置 Nginx、Tomcat、Memcached 的步骤,以及如何进行集群测试和优化。该文档可能还会涉及到环境...

    Nginx负载均衡

    《系统实施文档-Nginx+Tomcat+MemCached 集群配置手册.V0.1.doc》提供了详细步骤指导如何配置和部署这样的集群环境,包括服务器硬件要求、软件版本选择、安装过程、配置参数解析以及故障排查等内容。 **深入研究** ...

    Android开发指南

    Android Studio使用指南(v0.1).pdf很可能是对这个IDE的初步介绍,涵盖了以下内容: 1. **安装与设置**:讲解如何下载并安装Android Studio,配置开发环境,包括Java Development Kit (JDK) 和Android SDK。 2. **...

Global site tag (gtag.js) - Google Analytics