自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java不惑

学习、吸收、输出

  • 博客(4)
  • 收藏
  • 关注

原创 【刨根问底】带你深入理解JUC并发工具类 — 信号量和管程

大家好,我是Java不惑(WX公众号同名),这是专栏的第三篇文章。在前面的两篇文章中,我介绍了volatile、cas以及其在处理器中的实现。我们需要知道,volatile和cas是最基础的工具,实际的业务场景中共享变量的同步问题是非常复杂的,所以很少直接使用它们来处理同步问题。基于这个工具上面我们可以封装成“锁”,方便我们解决多线程同步问题。今天我会讲一下基于volatile+cas实现的同步机制,也就是信号量和管程。信号量信号量的概念是由荷兰计算机科学家艾兹赫尔·戴克斯特拉(Edsger W

2021-08-28 23:49:00 193

原创 【刨根问底】带你深入理解JUC并发工具类 — 缓存一致性和内存屏障

大家好,我是Java不惑(WX公众号同名)。这是专栏的第二篇文章,我将给大家简单介绍一下volatile和cas的原理。为什么说简单介绍,因为不同的处理器有不同的实现方式,并且处理器过于复杂,我们只需要简单了解就可以了。在这篇文章中,我将向大家介绍缓存一致性协议,并介绍缓存一致性协议是怎样实现可见性和有序性。lock指令前缀对volatile修饰的变量,编译后的指令增加了lock指令的前缀:lock add1 $0x0,(%esp)CAS编译后,也会自动增加lock前缀。lock cmpxc

2021-08-22 00:56:13 182

原创 【刨根问底】带你深入理解JUC并发工具类 — volatile和cas

大家好,我是Java不惑(WX公众号同名)。这是专栏的第一篇文章,我将给大家介绍一下计算机体系中的高速缓存以及三大并发问题,在介绍三大并发问题时会介绍一下volatile修饰符在这三个问题中起到的作用,最后介绍了CAS的使用。希望这篇文章让你有所收获!高速缓存在计算机体系中,CPU内核处理数据的速度和在内存中读取数据的速度不匹配,为了解决它们之间存在的巨大差异,引入高速缓存。内核读取数据时,会首先去高速缓存中读取,高速缓存中不存在数据则去内存中读取,读取后会将数据存入高速缓存中。根据时间局部性原理,

2021-08-19 23:35:39 127

原创 【刨根问底】带你深入理解JUC并发工具类 — 开篇

大家好,我是Java不惑(WX公众号同名)。数据同步问题一直是并发编程的难点,Java中原生的synchronized修饰符可以解决大部分并发问题,但是其性能问题饱受开发者诟病。JDK1.5推出JUC并发工具类,让锁的控制更加精细,性能也大大提高,掌握了JUC的原理,可以帮助你更好的处理并发编程中的问题。JUC并发包,即java.util.concurrent包,是JDK的核心工具包,是JDK1.5之后,由 Doug Lea实现并引入。为了学好并发,我学习了很多资料,包括各种收费的专栏,《Java并

2021-08-19 23:33:55 120

空空如也

空空如也

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

TA关注的人

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