happen

编程入门 行业动态 更新时间:2024-10-26 18:19:48

<a href=https://www.elefans.com/category/jswz/34/1679008.html style=happen"/>

happen

1.happen-before 原则是什么?

happen-before 原则是作为java 内存模型(JMM)的一部分。它规定了若A操作happen-befroe B操作,那么A操作对与B操作来说是可见的。JVM在实现的时候就确保了是能够满足happen-before 原则的。

2.为什么会出现happen-before 原则?

  • java 存在线程工作内存及主内存(多核cpu及多级缓存导致),线程对变量的操作都是在工作内存中进行的,那么多线程的操作必然会导致共享数据的错乱
  • 操作系统会对指令进行重排序,在多线程环境下,重排序对会线程的执行结果及执行顺序造成严重的影响

通过对happen-before原则的定义,可以满足多线程环境下,程序能正常安装我们预想的路径进行执行,满足我们预想的结果。

3.JVM 依靠什么来实现happen-before 原则呢?

主要是依靠内存屏障。

3.happen-before 原则的具体内容

  • 程序次序规则

不能简单滴认为,写在前面的代码就先于后面的代码先执行,这个规则,一般需要与其他规则配合起来。

一般值指的是的真正指令执行顺序若A happen-before B

  • voliate 的写happen-before 读
  • 传递性原则
  • 线程start 原则

主线程start 子线程。则主线程的操作对于子线程是可见的

  • 线程join原则
  • 线程interupt原则
  • synchronized 原则

同一个锁的unlock操作happen-before此锁的lock操作

更多推荐

happen

本文发布于:2024-02-11 03:56:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679007.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:happen

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!