自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 Java实现原子操作

在处理器中会使用总线锁或者缓存锁保证原子性,在java中可以通过锁和循环CAS的方式来实现原子操作1.使用CAS实现原子操作JVM中的CAS操作使用了处理器提供的CMPXCHG指令(交换指令)实现的。自旋CAS实现的基本思路就是 循环进行CAS操作直到成功。2.CAS实现原子操作的三大问题1)ABA问题如果一个值原来是A,变成了B,又变回了A,那么使用CAS进行检查时会发现它的值没有发生改变,而实...

2018-03-11 14:58:04 581

原创 volatile关键字

volatile是一个类型修饰符,被volatile修饰的变量是内存可见的,即如果一个字段被声明成volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。是线程同步的方法之一,相较于 synchronised 是一种较轻量的同步策略,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。1.volatile的实现原理   有volatile变量...

2018-03-10 21:31:50 141

原创 Java 之 JUC _线程池

实现多线程的方法之一:线程池一、线程池:提供了一个线程队列,队列中保存着所有等待状态的线程。                        避免创建与销毁额外开销,提高了响应的速度二、线程池的体系结构:       java.util.concurrent.Executor:负责线程的使用与调度的根接口             |--ExecutorService 子接口:线程池的主要接口,   ...

2018-03-07 20:36:36 253

原创 synchronized的实现原理

利用synchronized实现同步的基础:java中的每一个对象都可以作为锁,synchronized用的锁是存在java对象头里的,具体表现为以下三种形式。  (1)对于普通同步方法,锁是当前实例对象。  (2)对于静态同步方法,锁是当前类的Class对象。  (3)对于同步方法块,锁是synchronized括号例配置的对象。当一个线程试图访问同步代码块时,它首先必须得到锁,退出或者抛出异常...

2018-03-05 16:32:47 223

空空如也

空空如也

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

TA关注的人

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