- 博客(3)
- 收藏
- 关注
原创 并发编程-JUC核心之AQS
JUC核心之AQS1.1 重入锁ReentrantLock的初步认识什么是锁锁是用来解决多线程并发访问共享资源所带来的数据安全性问题的手段,对一个共享资源加锁后,如果有一个线程获得了锁,那么其他线程无法访问这个共享资源加锁前后的区别通过查看jdk源码目录rt.jar->java->util->concurrent->locks可以看到lock接口的很多子类和实现,我们先使用ReentrantLockpublic class ReenDemoTest { .
2021-04-26 22:49:53 204
原创 并发编程-发布与逃逸
1.发布与逃逸1.1 发布对象发布的意思是是一个对象能够被当前范围之外的代码所使用1.2 不安全发布1.3 对象溢出一种错误的发布,当一个对象还没有构造完成时,就使它被其他线程所见逃逸带来的问题2. 安全发布对象的4种方法2.1安全发布对象在静态初始化函数中初始化一个对象引用将对象的引用保存到volatile类型的域或者AtomicReference对象中(利用volatile happen-before规则)将对象的引用保存到某个正确构造对象的final类型域中(初
2021-04-26 22:16:54 242
原创 并发编程-线程安全性分析
如何理解线程安全当多个线程访问某个对象时候,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或者协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的1 线程安全问题的本质产生原因,cpu,内存,io的读写速率不同,cpu>内存>io计算机通过建立高速缓存区提高了效率优化成果:1.cpu增加了告诉缓存,均衡与内存的速度差异2.操作系统增加进程,线程,以及分时复用cpu,均衡cpu与i/o设备的差异3.编译程序优化指令的执行顺
2021-04-01 22:30:41 227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人