加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

硬件内存模型到 Java 内存模型,这些硬核知识你知多少?

发布时间:2019-11-09 17:43:38 所属栏目:建站 来源:平头哥
导读:Java 内存模型跟上一篇 JVM 内存结构很像,我经常会把他们搞混,但其实它们不是一回事,而且相差还很大的,希望你没它们搞混,特别是在面试的时候,搞混了的话就会答非所问,影响你的面试成绩,当然也许你碰到了半吊子面试官,那就要恭喜你了。Java 内存模

一个线程在另一个线程上调用 interrupt ,Happens-Before 被中断线程检测到 interrupt 被调用。

  1. public class Demo { 
  2.     private static int count = 0; 
  3.     public static void main(String[] args) throws InterruptedException { 
  4.         Thread t1 = new Thread(() -> { 
  5.             // t1 线程可以看到被中断前的数据 
  6.             System.out.println(count); 
  7.         }); 
  8.         t1.start(); 
  9.         count = 25; 
  10.         // t1 线程被中断 
  11.         t1.interrupt(); 
  12.     } 

mian 线程中调用了 t1 线程的 interrupt() 方法,mian 对 count 的修改对 t1 线程是可见的。

7、终结器规则

一个对象的构造函数执行结束 Happens-Before 它的 finalize()方法的开始。“结束”和“开始”表明在时间上,一个对象的构造函数必须在它的 finalize()方法调用时执行完。根据这条原则,可以确保在对象的 finalize 方法执行时,该对象的所有 field 字段值都是可见的。

8、传递性规则

这条规则是指如果 A Happens-Before B,且 B Happens-Before C,那么 A Happens- Before C。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读