JMM
i_history
这个作者很懒,什么都没留下…
展开
-
在 JNI 编程中避免内存泄
https://www.ibm.com/developerworks/cn/java/j-lo-jnileak/转载 2017-12-03 20:19:53 · 233 阅读 · 0 评论 -
java内存模型总结-volatile
1、volatile特性可见性:对一个volatile的读总能看到(任意线程)对这个volatile变量最后的写入。原子性:任意单个volatile变量的读/写具有原子性,但是类似volatile++这样的复合操作不具有原子性。2、volatile的内存语义当写一个volatile变量时,JMM会把该线程对应的问题内存中的共享变量刷新到主内存中。当读一个volatile变量时,JMM会把该线程本地...原创 2018-02-09 18:13:59 · 136 阅读 · 0 评论 -
Java内存模型总结-基本概念
JMM控制主内存与每个线程的本地内存的交互,保证java程序的内存可见性1、重排序(只针对单处理器和单线程)编译器优化重排序处理器重排序:要求Java编译器生成指令序列时,插入特定类型的内存屏障指令,禁止特性类型的处理器重排序。2、happens-beforehappens-before并不意味着前一个的操作必须在后一个操作之前完成,仅仅要求前一个操作的操作结果对后一个操作可见,且前一个操作按顺序...原创 2018-02-08 10:32:31 · 140 阅读 · 0 评论 -
Java内存模型总结-final
1、final域的重排序规则在构造函数内对一个final域的写入,与将final对象赋值给引用变量,这两个操作之间不能重排序初次读取final域的对象引用,与初次读取final域对象,这两个操作之间不能重排序2、写final域的重排序规则JMM禁止编译器把final域的写重排序到构造函数之外JMM会在final域的写之后,构造函数return之前,插入一个storestore屏障。禁止final域...原创 2018-02-17 09:27:09 · 368 阅读 · 0 评论