太强了!这一定是你见过最全的Java并发编程详解

334 阅读2分钟

知识体系系统梳理

不多说,我们先来看一张图

Java并发之基础

Java 并发 - 理论基础

  • 多线程的出现是要解决什么问题的?
  • 线程不安全是指什么?举例说明
  • 并发出现线程不安全的本质什么?可见性,原子性和有序性。
  • Java是怎么解决并发问题的?3个关键字,JMM和8个Happens-Before
  • 线程安全是不是非真即假?不是
  • 线程安全有哪些实现思路?
  • 如何理解并发和并行的区别?

Java 并发 - 线程基础

  • 线程有哪几种状态?分别说明从一种状态到另一种状态转变有哪些方式?
  • 通常线程有哪几种使用方式?
  • 基础线程机制有哪些?
  • 线程的中断方式有哪些?
  • 线程的互斥同步方式有哪些?如何比较和选择?
  • 线程之间有哪些协作方式?

并发关键字:volatile,final,synchronized

  • 关键字: synchronized详解
  • 关键字: volatile详解
  • 关键字: final详解

J.U.C框架

Lock框架和Tools类

类结构总览

  • 接口: Condition
  • 接口: Lock
  • 接口: ReadWriteLock
  • 抽象类: AbstractOwnableSynchonizer
  • 抽象类(long): AbstractQueuedLongSynchronizer
  • 核心抽象类(int): AbstractQueuedSynchonizer
  • 锁常用类: LockSupport
  • 锁常用类: ReentrantLock
  • 锁常用类: ReentrantReadWriteLock
  • 锁常用类: StampedLock
  • 工具常用类: CountDownLatch
  • 工具常用类: CyclicBarrier
  • 工具常用类: Phaser
  • 工具常用类: Semaphore
  • 工具常用类: Exchanger

Collections: 并发集合

类结构关系

  • Queue: ArrayBlockingQueue
  • Queue: LinkedBlockingQueue
  • Queue: LinkedBlockingDeque
  • Queue: ConcurrentLinkedQueue
  • Queue: ConcurrentLinkedDeque
  • Queue: DelayQueue
  • Queue: PriorityBlockingQueue
  • Queue: SynchronousQueue
  • Queue: LinkedTransferQueue
  • List: CopyOnWriteArrayList
  • Set: CopyOnWriteArraySet
  • Set: ConcurrentSkipListSet
  • Map: ConcurrentHashMap
  • Map: ConcurrentSkipListMap
  • Atomic: 原子类
  • 基础类型:AtomicBoolean,AtomicInteger,AtomicLong
  • 数组:AtomicIntegerArray,AtomicLongArray,BooleanArray
  • FieldUpdater:AtomicLongFieldUpdater,AtomicIntegerFieldUpdaterAtomicReferenceFieldUpdater

Executors: 线程池

类结构关系

  • 接口: Executor
  • ExecutorService
  • ScheduledExecutorService
  • AbstractExecutorService
  • FutureTask
  • 核心: ThreadPoolExecutor
  • 核心: ScheduledThreadExecutor
  • 核心: Fork/Join框架
  • 工具类: Executors

结语

好了,今天的分享就到这里了,如果觉得本文对你有帮助记得点赞+收藏!!!