- 博客(3)
- 收藏
- 关注
原创 模拟CAS算法
模拟CAS算法public class TestCAS { public static void main(String[] args) { final CAS cas=new CAS(); for (int i = 0; i < 10; i++) { new Thread(new Runnable() { @Override public void run() {
2020-07-24 16:21:02 130
原创 原子性问题和CAS算法
原子性问题和CAS算法原子性问题原子变量CAS算法举例代码原子性问题场景如下:例如i++,实际上分成三个步骤“读-改-写”。int temp=i;i=i+1;return temp;由于该操作分成多个步骤,整体不具有原子性。最终导致当有多个线程同时访问共享数据时,就会出现重复数据的问题。为了解决重复数据的问题,在jdk1.5之后提出了java.util.concurrent.atomic 包下提供了常见的原子变量。原子变量1、volatile 保证内存可见性2、CAS算法 保证数据的原
2020-07-23 16:34:38 354
原创 volatile关键字和内存可见性
volatile关键字和内存可见性内存可见性问题问题举例如下问题描述分析原因解决办法注意事项内存可见性问题当多个线程访问共享资源时,彼此的线程不可见。问题举例如下问题描述启动程序后,会生成两个线程主线程和子线程。根据代码所示,程序运行应该会结束。但是由于内存可见性问题导致程序无法终止。public class VolatileDemo { public static void main(String[] args) { ThreadDemo threadDemo=new
2020-07-22 15:42:42 84 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人