标签:CAS

JAVA

阿里面试题:Java为什么要引入偏向锁?

herman 4年前 (2020-03-11) 2929浏览

这是一道来自阿里的面试题,在聊到锁的时候,阿里面试官引入了这个问题。我这里来简单的回答一下! 要回答这个问题,首先你要直到什么是偏向锁! JDK1.6 对锁做了很多优化,轻量级锁和偏向锁是其中两种优化手段。引入偏向锁是为了在无多线程竞争...

JAVA

并发编程的核心是产生矛盾,解决矛盾的过程

herman 5年前 (2019-05-21) 1759浏览

华为要崛起,阻碍了某些人的利益,因此与他们产生了矛盾。矛盾被所有人讨厌,但我们又不得不面对现实。 CPU、IO、内存等它们各自的速度并不相同,因此它们之间也会产生矛盾。CPU 跑的快,磁盘跑的慢,因此我们引入了内存这个中间桥梁来解决矛盾。 ...

JAVA

手把手教你用代码实现 Unsafe 的 9 大使用场景

herman 5年前 (2019-04-02) 1770浏览

Unsafe 这个类是你用就觉得好用的类。今天我借助它,边介绍它的使用场景便给大家讲实现。 Unsafe 的8大主要功能 使用场景一:Unsafe 可以用在避免类初始化的场景。也就是不需要执行类构造函数的场景,跳过对象初始化阶段,或绕过...

JAVA

Unsafe 的 CAS 和内存操作的原理、源码解毒

herman 5年前 (2019-04-01) 2365浏览

Java 语言的一大特点就是跨平台,并且提供的有一套完美的内存管理机制。但这都是 JVM 提供的,如果我们想要直接访问系统内存资源、自主管理内存资源等就无法实现。于是 Java 又提供了一个魔法类:Unsafe。 Unsafe 类位于 su...

JAVA

CAS非锁实现单例的一个缺陷

herman 5年前 (2019-02-27) 4004浏览

最近又是一年新春的面试季,有人说这是金三银四。但是说到面试,并发和锁肯定是少不了的。关于并发可以访问我的这篇文章:极客时间《Java并发编程实战》购买返现24,今天我们要说的是,无锁实现单例模式,以及这种 CAS 实现的单例的缺点。 传统的...

JAVA

一文看懂竞态条件、竞态资源、临界区、互斥锁、同步锁、临界区、互斥量、信号量、自旋锁等专有名词!

herman 5年前 (2019-02-14) 3433浏览

关于线程安全的专有名词有一大堆。你们突然之间问我这个名词是什么意思,那个名词是什么意思我还真不一定能给你准确的回答。这还别说一门语言一堆名词。其实有些名词叫法不同,实际上就是一个意思。 A 语言有这个名词,B 语言就起另外一个名词。不能大胆...

JAVA

Java 中的无锁、偏向锁、轻量级锁、重量级锁!

herman 5年前 (2018-11-21) 3166浏览

最近一段时间,有人微信私信我说:“看我的文章,喜欢每天都进步的感觉!”把我高兴坏了!还有人经常打赏我,我在这里感谢他(她)们! 每收到一份打赏、赞美、评论、留言等都是满满的幸福。再次感谢大家的认可和支持! ...

JAVA

Java 中的自旋锁和适应性自旋锁!

herman 5年前 (2018-11-21) 3924浏览

阅读过上篇文章的网友,可能会发现上一篇文章中已经出现了一个自旋锁! 什么?怎么可能?你在上一篇文章中连一个自旋锁的字都没提,怎么可能有自旋锁(欺骗我农村来的是吧,一定是)? 我怎么可能会骗你呢?就算骗了你,也骗不了其他人,那么多读者,...

JAVA

从“图”学习乐观锁与悲观锁(CAS以及ABA问题)

herman 5年前 (2018-11-20) 3426浏览

前面写了好几篇关于 HashMap 的文章,有人在微信群里给我反馈说想看点别的。其实我也想换了,HashMap 写来写去就那么点内容,还能写出 bug 出来(大笑)!所以,索性我今天就换个新内容!乐观锁 VS 悲观锁! 其实吧,写锁也写不出...