- 博客(5)
- 收藏
- 关注
原创 Java内存模型总结-final
1、final域的重排序规则在构造函数内对一个final域的写入,与将final对象赋值给引用变量,这两个操作之间不能重排序初次读取final域的对象引用,与初次读取final域对象,这两个操作之间不能重排序2、写final域的重排序规则JMM禁止编译器把final域的写重排序到构造函数之外JMM会在final域的写之后,构造函数return之前,插入一个storestore屏障。禁止final域...
2018-02-17 09:27:09
398
原创 java内存模型总结-volatile
1、volatile特性可见性:对一个volatile的读总能看到(任意线程)对这个volatile变量最后的写入。原子性:任意单个volatile变量的读/写具有原子性,但是类似volatile++这样的复合操作不具有原子性。2、volatile的内存语义当写一个volatile变量时,JMM会把该线程对应的问题内存中的共享变量刷新到主内存中。当读一个volatile变量时,JMM会把该线程本地...
2018-02-09 18:13:59
159
原创 Java内存模型总结-基本概念
JMM控制主内存与每个线程的本地内存的交互,保证java程序的内存可见性1、重排序(只针对单处理器和单线程)编译器优化重排序处理器重排序:要求Java编译器生成指令序列时,插入特定类型的内存屏障指令,禁止特性类型的处理器重排序。2、happens-beforehappens-before并不意味着前一个的操作必须在后一个操作之前完成,仅仅要求前一个操作的操作结果对后一个操作可见,且前一个操作按顺序...
2018-02-08 10:32:31
181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人