自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 并发编程——从源码看AQS

目录 一、什么是AQS?二、自定义的不可重入锁自定义同步器自定义锁三、Reentrantlock原理Reentrantlock的结构图非公平锁加锁解锁非公平锁的体现可重入原理公平锁和非公平锁的区别条件变量实现原理一、什么是AQS?全称是AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架用state属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获...

2021-08-09 15:58:10 280

原创 并发编程——线程池

目录一、为什么要使用线程池 二、自定义线程池自定义任务队列自定义线程池管理器拒绝策略接口测试(任务生产者)总结流程三、线程池ThreadPoolExecutor线程池状态线程池的工作状态四、Executors 类newFixedThreadPool(固定大小的线程池)newCachedThreadPool(带缓冲工厂的线程池)newSingleThreadExecutor(单线程的线程池)...

2021-08-08 17:42:53 518 1

原创 并发编程——不可变类

一、日期转换问题一般使用的最多的是SimpleDateFormat,但是因为是不可变类,在多个线程操作共享变量的时候内部的数据会改变,造成线程安全问题,接下来看一下测试案例。SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < 10; i++) {//运行10个线程 new Thread(() -> { try {

2021-08-07 19:37:20 382 2

原创 并发编程——共享模型之无锁

目录一、并发编程无锁案例无锁高效率二、CAS(compareAndSet)CAS和volatile的关系CAS的特点三、ABA问题解决四、CAS操作的原子类原子整数原子引用原子数组字段更新器原子累加器五、原子累加器原子累加器与原子整数的性能比较六、原子累加器LongAdder原理LongAdder类有几个关键域CAS锁伪共享LongAdder源码七、UnsafeUnsafe的CAS操作实现一、并发编...

2021-08-07 02:05:35 561 2

原创 并发编程:共享模型之内存

Java内存模 JMM即Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着CPU寄存器、缓存、硬件内存、 CPU指令优化等。 JMM体现在以下几个方面 原子性-保证指令不会受到线程上下文切换的影响 可见性-保证指令不会受cpu缓存的影响 有序性-保证指令不会受cpu指令并行优化的影响 ...

2021-08-06 00:08:41 280 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除