并发编程知识点梳理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qixinbruce/article/details/86345230
  • 基础概念

同步和异步

并发和并行

阻塞和非阻塞

  • java内存模型

原子性(Atomicity)

可见性(Visibility)

有序性(Ordering)

Happen-Before原则

volatile和sychronized

  • 线程基本操作

新建线程

终止线程

线程中断

等待(wait)和通知(notify)

挂起(suspend)和继续执行(resume)线程

等待线程结束(join)和谦让(yield)

  • 同步控制

倒计数器:CountdownLatch

循环栅栏:CyclicBarrier

  • 线程池

什么是线程池

使用线程池的好处

Executor框架:

  1. newFixedThreadPool()
  2. newSingleThreadExecutor()
  3. newCachedThreadPool()
  4. newSingleThreadScheduleExecutor()
  5. newScheduledThreadPool()

超负载了怎么办:拒绝策略

  • jdk的并发容器

线程安全的HashMap:ConcurrentHashMap

高效读写的队列:ConcurrentLinkedQueue

高效读取:CopyOnWriteArrayList

数据共享通道:BlockingQueue

随机数据结构:ConcurrentSkipListMap

公平锁/非公平锁

可重入锁

独享锁/共享锁

互斥锁/读写锁

乐观锁/悲观锁

分段锁

偏向锁/轻量级锁/重量级锁

自旋锁

交换并比较的无锁操作:CAS

线程局部变量:ThreadLocal

死锁


内容不断补充、更新ing

猜你喜欢

转载自blog.csdn.net/qixinbruce/article/details/86345230