Java并发编程——笔记与总结

JUC并发包结构图

1. 基础知识


  • Java并发编程2——Java线程:https://blog.csdn.net/qq_41157876/article/details/114902271
    • 线程的创建(Thread,Runnable,FutureTask)
    • 线程的常用方法
    • 线程的生命周期和状态
      • 操作系统层面:五种状态
      • Java API层面:六种状态
    • 查看线程和进程方法
    • 锁对象的方法:wait()和notify()
      • 执行原理
      • WAITING与BLOCKED状态的区别
      • wait()与sleep()的区别
      • notify()与notifyAll()的区别
      • 虚假唤醒
    • LockSupport类的方法:park()和unpark(thread)
      • 执行原理

  • Java并发编程3——JMM / synchronized / volatile / Monitor / 加锁算法:https://blog.csdn.net/qq_41157876/article/details/114930398
    • Java内存模型(原子性,可见性,有序性)
    • volatile
      • 可见性:内存语义
      • 有序性:内存屏障
    • synchronized
      • 两种加锁方式
        • 实例加锁:synchronized(this) / 普通方法
        • 类对象加锁:synchronized(this.class) / 静态方法
      • 底层原理:Monitor
        • monitorenter / monitorexit / ACC_SYNCRONIZED
        • C++结构体:Entry_list,Wait_List,Owner
      • 对象头
      • 重量级锁
      • 轻量级锁
      • 偏向锁
      • 其他优化:自旋,锁粗化,锁消除

2. executor

  • Java并发编程4——Executor / ExecutorService / ThreadPoolExecutor线程池:https://blog.csdn.net/qq_41157876/article/details/115297036
    • 继承关系
      • Executor接口(顶层接口)
      • ExecutorService接口
      • AbstractExecutorService抽象类
      • ThreadPoolExecutor实现类
    • ThreadPoolExecutor
      • 属性
      • 线程池状态(ctl属性)
      • 构造器 / 参数
      • 线程池运行机制
      • 源码级别
        • Work类
    • Executors工具类提供的线程池实现
      • nexFixedThreadPool:固定大小的线程池
      • newCachedThreadPool:带缓冲池的线程池
      • newSingleThreadExecutor:单线程线程池
    • 其他
      • submit() / invokeAny() / invokeAll()使用示例

  • Java并发编程5——Future 和 Callable:
    •  

3. Atmoic原子类

  • Java并发编程6——Atomic家族1:https://blog.csdn.net/qq_41157876/article/details/115331426
    • 概述
    • 基本类型(boolean, int, long, 对象)
      • AtomicBoolean
      • AtomicInteger
      • AtomicLong
      • AtomicReference
    • 数组(Long, Integer, 对象)
      • AtomicLongArray
      • AtomicIntegerArray
      • AtomicReferenceArray
    • 字段更新器(指定对象的指定字段)
      • AtomicLongFieldUpdater
      • AtomicIntegerFieldUpdater
      • AtomicReferenceFieldUpdater
    • 带版本号引用类型(对象,解决ABA)
      • AtomicStampedReference
      • AtomicMarkableReference
    • 原子累加器(JDK1.8):AtomicLong和AtomicDouble的升级类型,专门用于数据统计,性能更高。
      • DoubleAccumulator
      • DoubleAdder
      • LongAccumulator
      • LongAdder

  • Java并发编程7——Atomic家族2:https://blog.csdn.net/qq_41157876/article/details/115342518
    • 原子累加器(JDK1.8):AtomicLong和AtomicDouble的升级类型,专门用于数据统计,性能更高。
      • LongAdder / DoubleAdder
      • LongAccumulator / DoubleAccumulator
    • 伪共享问题
      • 缓存行失效 / 伪共享
      • @sun.misc.Contended注解
    • Unsafe对象

3.locks 锁相关

4. tools工具包

5. collections 安全的集合类

  • Queue 阻塞队列和非阻塞队列
  • CopyOnWrite系列
  • concurrentHashMap

猜你喜欢

转载自blog.csdn.net/qq_41157876/article/details/107926191