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!
分享到:
相关推荐
《ImageUpon v0.1 英文版》是一款专为商业环境设计的编程源码,它主要用于图像处理和管理。这个软件的英文版本提供了一套完整的解决方案,旨在帮助开发者高效地处理图像,优化图片资源在商业应用中的使用。源码的...
【Java计算机考试模拟软件V0.1】是一款用于帮助考生准备计算机相关考试的软件,它提供了丰富的模拟试题,便于用户进行自我测试和复习。这款工具的源码是开放的,这意味着开发者可以深入研究其内部机制,学习如何构建...
《Java时钟应用:Clock V0.1》 在编程领域,尤其是Java开发中,创建一个功能丰富的时钟应用程序是一项常见的课程设计任务。这个名为"Clock V0.1 java.zip"的项目,就是一个以Java语言编写的时钟程序,旨在提供时间...
《商业编程:深入理解Ice GD Cool Vote v0.1源码》 在IT行业中,商业编程是企业级软件开发的核心,而源码则是这一切的基础。本文将深入探讨名为"Ice GD Cool Vote v0.1"的商业编程项目,通过解析其源码,揭示其内在...
成绩评分系统源码V0.1....通过深入研究这个成绩评分系统源码V0.1,开发者可以了解上述知识点的实际应用,提升自己的编程技能和项目管理能力。同时,也可以根据实际需求对其进行二次开发,以满足特定场景下的功能扩展。
《绝地文章管理系统(KArticle) v0.1》是一...通过深入研究《绝地文章管理系统(KArticle) v0.1》的源码,开发者不仅可以提升自己的编程技能,还能了解到实际项目中的问题处理和优化策略,对于提升商业编程能力大有裨益。
《Kotlin Coroutines by Tutorials》是一本深入讲解Kotlin协程技术的书籍,涵盖了从基础概念到高级应用的各个方面。通过学习本书,开发者可以更好地理解和掌握Kotlin协程的强大功能,并将其应用于实际项目中,提高...
压缩包子文件“java-rfid_v0.1”很可能包含了以下内容: 1. **源代码文件**:.java文件,这些是Java编程的源代码,可能包含RFID读取器的驱动程序、数据解析类、事件监听器等。 2. **构建脚本**:如build.gradle或...
10. **Java中的多线程技术**: 支持并发处理,提高系统效率。 11. **Java画图板及控件**: 提升用户交互体验。 #### 六、示例与实践 文档中提到了几个具体的示例,如远程摄像头监控、温度采集显示、LED控制等。这些...
- Doug Lea作为Java并发领域的专家,其研究成果被广泛应用于Java标准库中,特别是在`java.util.concurrent`包的设计上。 - 他对并发模型、锁机制、线程池等方面有深入研究,这些都为企业级应用提供了强大的并发...
综合这些文件,我们可以预期这份笔记集合涵盖了Java并发编程的高级主题,网络爬虫的实现技巧,以及分布式数据库系统的深入理解。这些知识点对于任何希望在Java开发、大数据处理或云计算领域深化技能的IT专业人员都极...
《Java技术在照片管理软件中的应用——以Haradriam PhotoManager v0.1为例》 在当今数字化时代,照片的存储与管理已经成为日常生活的重要部分。为了帮助用户更有效地整理和检索自己的照片,各种照片管理软件...
在这个压缩包中,我们注意到一个名为“XULEngine4J v0.1”的子文件,这可能是一个Java实现的库或框架,用于执行某种形式的自动化测试。 首先,让我们深入了解一下IP测试。IP(Internet Protocol)测试确保了设备或...
"系统实施文档-Nginx+Tomcat+MemCached_集群配置手册.V0.1.doc"则可能是更全面的集群部署指南,内容可能包括安装和配置 Nginx、Tomcat、Memcached 的步骤,以及如何进行集群测试和优化。该文档可能还会涉及到环境...
《系统实施文档-Nginx+Tomcat+MemCached 集群配置手册.V0.1.doc》提供了详细步骤指导如何配置和部署这样的集群环境,包括服务器硬件要求、软件版本选择、安装过程、配置参数解析以及故障排查等内容。 **深入研究** ...
Android Studio使用指南(v0.1).pdf很可能是对这个IDE的初步介绍,涵盖了以下内容: 1. **安装与设置**:讲解如何下载并安装Android Studio,配置开发环境,包括Java Development Kit (JDK) 和Android SDK。 2. **...