多线程
不好意思海底捞月
这个作者很懒,什么都没留下…
展开
-
ThreadLocal介绍及源码分析
ThreadLocal ThreadLocal介绍 ThreadLocal提供给每个线程一个局部变量,它主要可以完成的功能就是线程间的隔离,即保证当前线程只能get到在当前线程set的值,其他线程get不到该线程set的值,该线程也get不到其他线程set的值。 ThreadLocal通常是一个类中private static修饰的field 下面以一个例子来解释一下ThreadLocal的作用。 public class Demo { //初始化一个ThreadLocal实例 priv原创 2020-10-12 17:23:35 · 73 阅读 · 0 评论 -
CAS存在的问题及解决办法
CAS存在的问题及解决办法 CAS原理见CAS介绍及底层原理 ABA问题 问题介绍:执行一次比较时,地址V对应的值是A,与预期值相同,但是在这期间A已经被其他线程改为B,又被一个线程改回A,那么CAS仍然会更新值。也就是说当你获得对象当前数据后,在准备修改为新值前,对象的值被其他线程连续修改了两次,而经过两次修改后,对象的值又恢复为旧值,这样当前线程无法正确判断这个对象是否修改过。 解决办法:JDK1.5可以利用AtomicStampedReference类来解决这个问题,AtomicStamp原创 2020-10-09 22:11:44 · 1753 阅读 · 1 评论 -
CAS底层原理
CAS目录 CAS介绍 CAS过程 CAS源码分析 CAS存在问题及解决办法 CAS使用时机原创 2020-10-09 21:49:47 · 284 阅读 · 0 评论