引言
前面使用了大量的章节对线程、Java内存模型、synchronized锁等进行了详细的介绍,同时也清楚了其实大部分的内容都是在围绕着并发过程中的原子性、可见性和有序性进行探讨,除了synchronized这样的隐式锁,前文还提到Lock对象支持的显式锁同样能够对这三大特征进行支持。从本章节开始,我们将致力于对Lock对象显式锁的探讨。
Lock对象显式锁其实是Java并发包(java.util.concurrent)中的重要内容,它是J2EE5.0之后才引入的。其相对于synchronized隐式锁更加强大与灵活,并且对锁的操作花费的代价更低。要想在并发开发过程中做到游刃有余,对这部分内容的掌握不可或缺。
为了能够对这部分的内容能够有较深入的了解,接下来的章节将会由最底层的基础元件开始介绍学习,只有对这些最底层的基础单元有了理解,才能在使用上层API的时候做到心里有数,而不是知其然不知其所以然。关于Java并发包(java.util.concurrent)又可以简称为JUC,可以分为以下几个部分,后文也将按照这样的顺序进行学习。
- Java并发包基础元件:sun.misc.Unsafe类、LockSupport
- Java并发包核心框架:AbstractQueuedSynchronizer、Condition接口、Lock接口
- Java并发包同步组件:ReentrantLock、CylicBarrer、Semaphore、CountDownLatch、ReadWriteLock/ReentrantReadWriteLock、StampedLock
- 同步数据结构之原子类:AtomicInteger、AtomicBoolean、AtomicLong、AtomicReference等
- 同步工具类:Phaser、Exchanger、ThreadLocalRandom
- 同步数据结构之Queue类:BlockingQueue接口、ArrayBlockingQueue、LinkedBlockingQueue、ConcurrentLinkedQueue、LinkedTransferQueue、PriorityBlockingQueue、DelayQueue、SynchronousQueue
- 同步数据结构之Deque类:BlockingDeque接口、ConcurrentLinkedDeque、LinkedBlockingDeque
- 同步数据结构之List类:CopyOnWriteArrayList
- 同步数据结构之Set类:CopyOnWriteArraySet、ConcurrentSkipListSet
- 同步数据结构之Map类:ConcurrentMap接口、ConcurrentHashMap、ConcurrentNavigableMap、ConcurrentSkipListMap
- 线程池:Executor、ExecutorService、ExecutorCompletionService、Executors、ScheduledThreadPoolExecutor
- fork/join:ForkJoinPool、ForkJoinTask、ForkJoinWorkerThread等
除了第一个基础类sun.misc.Unsafe,其他所有的内容都是出自java.util.concurrent包及其子包下。
相关推荐
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError),内附解决方案!
java并发工具包 java.util.concurrent中文版-带书签版
java并发工具包 java.util.concurrent中文版pdf
java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1)
java.util.concurrent总体概览图。 收取资源分3分。需要的同学可以下载一下。 java.util.concurrent主要包括5个部分executor,colletions,locks,atomic,tools。 该图详细的列举了并发包下面的结构,包含所有接口和...
JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用
主要介绍了java.util.concurrent.ExecutionException 问题解决方法的相关资料,需要的朋友可以参考下
Java并发编程工具包java.util.concurrent的UML类结构图 PDF
如何启动:以win7系统为例,最好jdk8 1.打开cmd,cd到jdk的path,本机是:cd C:\Java\jdk6\bin ...java -cp D:\javaConcurrentAnimated.jar vgrazi.concurrent.samples.launcher.ConcurrentExampleLauncher
标签:atlassian-util-concurrent-0.0.12.jar.zip,atlassian,util,concurrent,0.0.12,jar.zip包下载,依赖包
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压
java.util.concurrent系列文章(2) java.util.concurrent系列文章(2) java.util.concurrent系列文章(2) java.util.concurrent系列文章(2)
一个高性能的Java线程库,该库是 JDK 1.5 中的 java.util.concurrent 包的补充,可用于基于并发消息机制的应用。该类库不提供远程的消息功能,其设计的宗旨是实现一个内存中的消息传递机制. 主要特点有: * All ...
本篇文章是对Synchronized和java.util.concurrent.locks.Lock的区别进行了详细的分析介绍,需要的朋友参考下
详细介绍了java.util.logging.Logger的用法和结构,对如果扩展Logger起到抛砖引玉的作用!尊重劳动成果,亲下载了要给个评价!
java.util.concurrent.ArrayBlockingQueueAPI介绍和简单案例
Java 并发工具包 java.util.concurrent 用户指南 中英文对照阅读版 pdf