jDK1.5开始,java增加了对并发处理的包java.util.concurrent. 该包在很多并发需求下有大量的使用需要。所以应该更多的去了解包的内容。下面是这个包的结构图。
该包下面主要分5部分:
- collections:并发相关的集合的工具。如List,Set,Map和Queue
- tools:并发所用到的一些常用工具,这部分因为常常用到,所以需要牢记。
- locks:并发用到的锁的概念,相对于synchronized隐式锁更加强大与灵活,并且对锁的操作花费的代价更低。要想在并发开发过程中做到游刃有余,对这部分内容的掌握不可或缺。
- aotmic:同步数据结构原子类相关。
- executor: 线程池相关包。
需要掌握的JUC相关的内容总结如下:
- Java并发包基础元件:sun.misc.Unsafe(唯一一个 不在该包下的)、LockSupport
- Java并发包核心框架:AbstractQueuedSynchronizer、Condition接口、Lock接口
- Java并发包同步组件:ReentrantLock、CylicBarrer、Semaphore、CountDownLatch、ReadWriteLock/ReentrantReadWriteLock、StampedLock
- 同步数据结构之原子类:AtomicInteger、AtomicBoolean、AtomicLong、AtomicReference等
- 同步工具类:Executor、Exchanger、CountDownLatch、CyclicBarrier、Semaphore
- 同步数据结构之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等。