自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 126

原创 原子性问题和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 351

原创 volatile关键字和内存可见性

volatile关键字和内存可见性内存可见性问题问题举例如下问题描述分析原因解决办法注意事项 内存可见性问题 当多个线程访问共享资源时,彼此的线程不可见。 问题举例如下 问题描述 启动程序后,会生成两个线程主线程和子线程。根据代码所示,程序运行应该会结束。但是由于内存可见性问题导致程序无法终止。 public class VolatileDemo { public static void main(String[] args) { ThreadDemo threadDemo=new

2020-07-22 15:42:42 82 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除