面试官:小王你简历上说熟悉多线程高并发嘛,那我问你ABA如何解决?
小王:啊?什么是ABA嘛,小王摸了摸头,ABA我还真不知道是什么东西,好像没有听说过。
面试官:那好吧!那我们聊聊CAS,你简单讲一下CAS是什么?
小王:CAS是“比较交换”的,它需要有3个操作就是:内存地址V、旧的阈值A和即将要更新的目标值B。
面试官:行吧!那今天面试就到这里吧,你先回去三天左右有通知。
在Java并发,首先最熟悉的是synchronized关键字,但synchronized属于重量级锁,很多时候会引起性能的问题。很多人会想到volatile也是个不错的选择呀,但大家应该知道volatile是不保证原子性的,只能在某些场合下使用。
什么是CAS
在JDK新增的锁里头,CAS大量的运用,大家有时间可以跟踪源码看看。CAS全称叫