摘要: 1.== 用==符号比较有两种情况,比较基本类型比较的是它们的值,如果比较的是对象比较的就是内存地址。 基本类型比较代码: int i = 10;int num = 10;System.out.println(i == num); 运行结果为:true; 引用类型比较代码: String str1 阅读全文
posted @ 2019-11-13 10:50 detention 阅读(267) 评论(0) 推荐(0)
摘要: CAS是什么? CAS(Compare And Swap):比较并交换,它是一条并发原语。 原语属于操作系统用语范畴,是由若干条指令组成,用于完成某个功能的一个过程,并且原语的执行必须是连续的,在执行过程中不允许被中断,也就是说CAS是一条原子指令,不会造成所谓的数据不一致问题。 compareAn 阅读全文
posted @ 2019-11-11 17:55 detention 阅读(143) 评论(0) 推荐(0)
摘要: 什么是ABA问题? 简单来说就是:狸猫换太子。 假设这里有两个线程线程1和线程2,线程1工作时间需要10秒,线程2工作需要2秒,主内存值为A,第一轮线程1和线程2都把A拿到自己的工作内存,2秒中后线程2工作完成把A改成了B再写回去,又过了2秒,线程2把B改成了A再写回去,然后就线程2进入休眠状态,这 阅读全文
posted @ 2019-11-08 15:58 detention 阅读(1580) 评论(0) 推荐(0)
摘要: volatile是什么? volatile是java中的关键字,也是java虚拟机提供的轻量级的同步机制(乞丐版的synchronize)。 volatile的三大特性 1.可见性 2.不保证原子性 3.禁止指令重排序 为什么说volatile是轻量级的同步机制? 因为大多数多线程开发都需要遵守JM 阅读全文
posted @ 2019-11-08 14:43 detention 阅读(546) 评论(0) 推荐(0)