![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识点小结
文章平均质量分 83
R_Sunflower
这个作者很懒,什么都没留下…
展开
-
JAVA线程-CAS原理
目录 1.CAS介绍 2.应用场景 1.CAS介绍 CAS全称为CompareAndSwap,直译为“比较并替换”。其实CAS的应用场景非常多,但实际在开发很难感知到,更多的做为一种思想或底层实现封装起来。常见的如:乐观锁、volatile、AtomicInteger、AtomicBoolean、JUC包的并发实现。 2.应用场景 假设需要对一个data变量做 100 次“++”操作交由 2 个线程执行,结果会是什么。 public class CasTest { pr..原创 2021-07-03 21:04:20 · 121 阅读 · 0 评论 -
JAVA线程-n线程执行m次++操作结果分析
目录 1.前沿 2.data++操作分析 2.1 data++流程图 2.2 4个步骤 2.3 工作内存的含义 3. 多线程分析 3.1 简单场景 3.2 分析 4. 总结 1.前沿 假设变量data初始值为0对其执行m次++操作后,其结果为m。但如果是多线程对data执行m次操作其结果会是什么呢?针对这个问题。首先需要理解data++到底做了什么。 2.data++操作分析 2.1 data++流程图 2.2 4个步骤 (1)从主内存中读取data数据到工作内原创 2021-07-01 23:41:14 · 416 阅读 · 0 评论 -
Java线程-JUC包同步方法
目录 1. CountDownLatch 1.1 CountDownLatch介绍 1.2 CountDownLatch不足 1.3 代码演示 2. CyclicBarrier 2.1 CyclicBarrier介绍 2.2 代码演示 3. Semaphore 3.1 Semaphore介绍 3.2 代码演示 1. CountDownLatch 1.1 CountDownLatch介绍 CountDownLatch是一个同步工具类,用于协调多个线程之间的同步问题。 Count原创 2021-06-28 23:10:50 · 105 阅读 · 0 评论 -
Java线程-知识点归纳
1 能确保线程安全的代码写法? 1.1 为什么多线程并发不安全? A: 操作系统中进程拥有资源,而线程则不拥有资源。一个进程可以创建多个线程。这些线程共享进程中的资源。当多线程并发执行。对同一个数据进行修改,就可能会造成数据的不一致。 线程执行的数据是由“工作内存“”获取的。而工作内存的数据来源与“主内存”。其中工作内存起到的作用类似于“缓存”。假设现在有个任务需将data=0,执行“+1”操作。开启两个线程执行。正常执行的结果data应该为2。实际data存在1 或者 2。原因线程1执行获取的d原创 2021-06-27 21:31:23 · 112 阅读 · 0 评论