Day289.并发工具类纵览 -Juc

Posted 阿昌喜欢吃黄桃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day289.并发工具类纵览 -Juc相关的知识,希望对你有一定的参考价值。

并发工具类纵览

1、并发安全类

①互斥同步

(1)使用各种互斥同步锁

  • sychronized

  • ReentrantLock

  • ReadWriteLock


(2)使用同步的工具类

  • Collections.sychronizedList(new ArrayList< E >())等
  • Vector等…

②非互斥同步

(1)Atomic基本类型原子类

  • AtomicInteger: 整型原子类
  • AtomicLong: 长整型原子类
  • AtomicBoolean: 布尔型原子类

(2)AtomicArray数组类型原子类(数组里的元素,都可以保证原子性)

  • AtomicIntegerArray:整型数组原子类
  • AtomicLongArray: 长整型数组原子类
  • AtomReferenceArray:引用类型数组原子类

(3)AtomicReference引用类型原子类

  • AtomicReference: 引用类型原子类
  • AtomicStampedReference: 引用类型原子类的升级,带时间戳,可以解决ABA问题
  • AtomicMarkableReference

(4)AtomicFieldUpdater升级原子类

  • 用AtomicFeildUupdater等升级自己的变量
  • AomicIntegerFeildUpdater: 原子更新整型字段的更新器
  • AtomicLongFeildUpdater: 原子更新长整型字段的更新器

(5)Adder加法器

  • LongAdder
  • DoubleAdder

(5)Accumulator累加器

  • LongAccumulator
  • DoubleAccumulator

③结合互斥&非互斥同步【线程安全并发容器】

(1)ConcurrentHashMap


(2)CopyOnWriteArrayList


(3)并发队列

【1】阻塞队列
  • ArrayBlockingQueue
  • LinkedBlockingQueue
  • PriorityBlockingQueue
  • SynchronousQueue
  • DelayedQueue
  • TransferQueue

【2】非阻塞队列
  • ConcurrentLinkedQueue

(4)ConcurrentSkipListMap 和 ConcurrentSkipListSet


④无同步方案、不可变

(1)final关键字

(2)线程封闭

  • ThreadLocal

  • 栈封闭

2、线程管理&提高效率类

①线程池相关

  • Executor
  • Executors
  • ExecutorService
  • 常见线程池

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DZlAHM5y-1622883505669)(C:/Users/PePe/AppData/Roaming/Typora/typora-user-images/image-20210605165517817.png)]


②能获取子线程的运行结果

  • Callable
  • Future
  • FutureTask

3、线程协作类

  • CountDownLatch
  • CyclicBarrier
  • Semaphore
  • Condition
  • Exchanger
  • Phaser

以上是关于Day289.并发工具类纵览 -Juc的主要内容,如果未能解决你的问题,请参考以下文章

Go分布式缓存 单机并发缓存(day2)

Go分布式缓存 单机并发缓存(day2)

Day839.并发容器-Java 并发编程实战

Day839.并发容器-Java 并发编程实战

Day523.多版本并发控制 -mysql

DAY10-python并发编程之携程