随笔分类 -  JAVA并发

摘要:【JUC】交换器Exchanger详解前言 JDK中提供了不少的同步工具,现在分享一个相对比较冷门的同步工具——交换器(Exchanger)。你知道Exchanger的作用是什么吗?实现机制是什么?可以用来做什么呢? Exchanger介绍 交换器(Exchanger),顾名思义,用于两个线程之间进行数据交换的。 简单来说,就是一个线程 阅读全文
posted @ 2022-12-07 20:18 JAVA旭阳 阅读(273) 评论(1) 推荐(0)
摘要:看完这篇,还不懂JAVA内存模型(JMM)算我输欢迎关注专栏【JAVA并发】 前言 开篇一个例子,我看看都有谁会?如果不会的,或者不知道原理的,还是老老实实看完这篇文章吧。 @Slf4j(topic = "c.VolatileTest") public class VolatileTest { static boolean run = true; 阅读全文
posted @ 2022-12-06 20:18 JAVA旭阳 阅读(841) 评论(0) 推荐(1)
摘要:盘点JAVA中基于CAS实现的原子类, 你知道哪些?前言 JDK中提供了一系列的基于CAS实现的原子类,CAS 的全称是Compare-And-Swap,底层是lock cmpxchg指令,可以在单核和多核 CPU 下都能够保证比较交换的原子性。所以说,这些原子类都是线程安全的,而且是无锁并发,线程不会频繁上下文切换,所以在某些场景下性能是优于加锁。 阅读全文
posted @ 2022-12-06 10:37 JAVA旭阳 阅读(760) 评论(0) 推荐(1)
摘要:深刻理解JAVA并发中的有序性问题和解决之道问题 Java并发情况下总是会遇到各种意向不到的问题,比如下面的代码: int num = 0; boolean ready = false; // 线程1 执行此方法 public void actor1(I_Result r) { if(ready) { r.r1 = num + num; } 阅读全文
posted @ 2022-12-05 23:00 JAVA旭阳 阅读(364) 评论(0) 推荐(2)
摘要:乐观锁思想在JAVA中的实现——CAS前言 生活中我们看待一个事物总有不同的态度,比如半瓶水,悲观的人会觉得只有半瓶水了,而乐观的人则会认为还有半瓶水呢。很多技术思想往往源于生活,因此在多个线程并发访问数据的时候,有了悲观锁和乐观锁。 悲观锁认为这个数据肯定会被其他线程给修改了,那我就给它上锁,只能自己访问,要等我访问完,其他人才能访问 阅读全文
posted @ 2022-12-05 16:27 JAVA旭阳 阅读(379) 评论(0) 推荐(0)