Java
X_NewStar
这个作者很懒,什么都没留下…
展开
-
学习多线程——volatile学习笔记
作用:volatile这个关键字主要是保证各个线程的数据的强一致性 说到数据的强一致性首先要清楚各个线程的数据是怎么来的。 首先主内存中会有一份数据,然后开启线程之后会向缓存中取数据,如果缓存中没有则向主内存中取数据并放入缓存中。 这样就会出现线程1修改了缓存中tmp的值,然而线程2中tmp的值依旧没有发生改变,volatile关键字就主要用于解决这个问题。 public class...原创 2019-04-24 16:26:18 · 181 阅读 · 0 评论 -
学习JVM——结合单例模式学习指令重排及类加载
一、指令重排 指令重排是指在程序执行过程中, 为了性能考虑, 编译器和CPU可能会对指令重新排序. 1.编译器重排 int a = 1; int b = 2; 在这种没有依赖顺序的语句是有可能会变成先给b赋值再给a赋值 2.cpu重排 汇编的一条指令实际上是会分解成多步并交由不同的硬件来进行操作 然后各个硬件相当于流水线的工人,可能这个硬件效率高,执行了4条指令,而另外一个执行了3...原创 2019-04-25 16:40:11 · 484 阅读 · 0 评论