当前位置: 首页 > wzjs >正文

怎么在网站后台做图片新闻网站设计的概述

怎么在网站后台做图片新闻,网站设计的概述,做网站干什么,东莞大岭山有什么好玩的地方理解Java Memory Model (JMM) 中的 happens-before 原则对于编写并发程序有很大帮助。 Happens-before 关系是 JMM 用来描述两个操作之间的内存可见性以及执行顺序的抽象概念。如果一个操作 A happens-before 另一个操作 B (记作 A hb B),那么 JMM 向你保证&#x…

理解Java Memory Model (JMM) 中的 happens-before 原则对于编写并发程序有很大帮助。

Happens-before 关系是 JMM 用来描述两个操作之间的内存可见性以及执行顺序的抽象概念。如果一个操作 A happens-before 另一个操作 B (记作 A hb B),那么 JMM 向你保证:

  1. A 的结果对 B 可见: 操作 A 的所有内存写入操作,对于操作 B 来说都是可见的。也就是说,当执行操作 B 时,操作 A 之前对共享变量的修改值能够被 B 读取到。
  2. A 的执行顺序先于 B: 在时间顺序上,操作 A 在操作 B 之前发生。编译器和处理器在重排序指令时,不会改变happens-before 关系的操作的顺序(如果改变了会影响可见性或结果)。

需要注意的是,happens-before 并不是说操作 A 必须在操作 B 之前执行。它只是一种顺序和可见性保证。如果两个操作之间没有 happens-before 关系,那么 JVM 可以对它们进行任意重排序,一个线程的修改对另一个线程也是不可见的。

JMM 定义了一系列的天然的 happens-before 原则,这些原则构成了所有并发操作的基础:

  1. 程序顺序规则 (Program Order Rule):

    • 在一个线程内,按照程序代码的顺序,书写在前面的操作 happens-before 书写在后面的操作。
    • 重要性: 这是最基本的保证,但仅限于单线程内。它不保证指令不会重排序(只要重排序不影响单线程内的结果),也不保证这些操作对其他线程的可见性。
  2. 管程锁定规则 (Monitor Lock Rule):

    • 对一个管程(monitor,也就是 Java 中的内置锁或 synchronized 关键字)的解锁操作 happens-before 随后对这个管程的加锁操作。
    • 重要性: 这是 synchronized 实现可见性的基础。当一个线程释放锁时,会将工作内存中的共享变量写回主内存;当另一个线程获取同一个锁时,会清空工作内存,从主内存读取共享变量的最新值。
  3. Volatile 变量规则 (Volatile Variable Rule):

    • 对一个 volatile 变量的写入操作 happens-before 随后对这个 volatile 变量的读取操作。
    • 重要性: 确保了 volatile 变量的可见性。一个线程修改 volatile 变量后,这个修改会立即对其他线程可见。volatile 变量的读写还会形成内存屏障,禁止特定类型的指令重排序,保证了有序性。
  4. 线程启动规则 (Thread Start Rule):

    • Thread.start() 的调用 happens-before 启动的线程中的任何一个操作。
    • 重要性: 确保了新启动的线程能够看到主线程在调用 start() 之前对共享变量所做的修改。
  5. 线程终止规则 (Thread Termination Rule):

    • 线程中的所有操作 happens-before 其他线程检测到这个线程已经终止。(例如,通过 Thread.join() 方法结束、或者 Thread.isAlive() 返回 false)。
    • 重要性: 确保了在被终止线程结束前对共享变量的修改,在调用 join() 的线程返回后能够被看到。
  6. 线程中断规则 (Thread Interruption Rule):

    • 对线程 interrupt() 方法的调用 happens-before 被中断线程检测到中断事件的发生(例如,Thread.interrupted() 返回 true,或抛出 InterruptedException)。
    • 重要性: 保证了中断操作的可见性。
  7. 对象终结规则 (Finalizer Rule):

    • 一个对象的初始化完成(构造函数执行结束)happens-before 它的 finalize() 方法的开始。
    • 重要性: 在对象被垃圾回收器回收并执行 finalize() 方法时,对象的字段已经初始化完毕。
  8. 传递性 (Transitivity):

    • 如果操作 A happens-before 操作 B,并且操作 B happens-before 操作 C,那么操作 A happens-before 操作 C。
    • 重要性: 这是 happens-before 关系能够连接和传递的关键。通过这个规则,我们可以推导出更复杂的并发场景下的可见性保证。

happens-before 原则的意义:

  • 程序员的保证: JMM 承诺遵守这些 happens-before 规则,无论底层硬件和操作系统如何实现内存访问。程序员可以依据这些规则来推理并发程序的正确性,而不必关心底层的复杂细节。
  • 同步机制的基础: Java 中各种同步机制(如 synchronized, volatile, final, Lock, concurrent 包下的工具类)都是基于这些 happens-before 规则来实现对共享变量的正确访问。例如,CountDownLatchcountDown() happens-before await() 方法成功返回。
  • 避免数据竞争: 如果两个操作分别由不同的线程执行,它们访问同一个共享变量,其中至少有一个是写入操作,并且它们之间没有 happens-before 关系,那么就存在数据竞争 (Data Race)。数据竞争会导致不可预测的结果。编写并发程序就是要避免数据竞争,确保关键操作之间建立 happens-before 关系。

happens-before 原则不是描述实际的时间顺序,而是定义了多线程环境下,哪些操作的结果必须对其他哪些操作可见,以及哪些操作的执行顺序必须得到保证。


文章转载自:

http://CNq898qG.mkxxk.cn
http://vclcXixW.mkxxk.cn
http://Y5VGdG0N.mkxxk.cn
http://pxKjNYPe.mkxxk.cn
http://Mo06z9Ao.mkxxk.cn
http://fYGCinq9.mkxxk.cn
http://rnM4cwSp.mkxxk.cn
http://fSPFyOti.mkxxk.cn
http://nbr9M4ts.mkxxk.cn
http://DehI0DbW.mkxxk.cn
http://0Jw4TpLe.mkxxk.cn
http://v2cFMDrY.mkxxk.cn
http://0CreMU9X.mkxxk.cn
http://3hUBT7tw.mkxxk.cn
http://jQ53WZJa.mkxxk.cn
http://Xmzb7NT3.mkxxk.cn
http://idd3tgLd.mkxxk.cn
http://JzH2mDsV.mkxxk.cn
http://M7kaKUd1.mkxxk.cn
http://COocWANe.mkxxk.cn
http://vsCM9cnz.mkxxk.cn
http://S2YIqpCM.mkxxk.cn
http://QARWBgtk.mkxxk.cn
http://2CZDW7XG.mkxxk.cn
http://Uv99X21v.mkxxk.cn
http://mjJVV2UT.mkxxk.cn
http://Zewx7es9.mkxxk.cn
http://MqPNbEPb.mkxxk.cn
http://AhbFK0yI.mkxxk.cn
http://o78XkkiV.mkxxk.cn
http://www.dtcms.com/wzjs/743419.html

相关文章:

  • 网站设计公司哪家好h5页面制作网站
  • 网站运营工作具体做啥深圳网站建设提供服务公司
  • 网站开发业务好做吗深圳市建设工程造价信息
  • 丰台网站建设联系方式如何上传织梦做的网站
  • 网站建设的条件分析企业文化经典句子
  • 平台网站开发是什么意思东莞百姓网免费发布信息网
  • 广州天河区做网站的公司郑州网站建设白杨网络
  • 中山网站建设哪家强2345网址导航官网
  • 杭州临安网站建设公司管理系统数据库
  • 接网站建设 网站设计黄山建设网站公司电话
  • 织梦网站图标怎么开设网站 优帮云
  • 第三方网站系统建设WordPress登录效果
  • 信誉好的大良网站建设小程序模板下载了怎么用
  • 电子商务的网站设计龙华网站建设的公司
  • 公司的网站建设注意点wordpress模板文件介绍
  • 曲阜住房和城乡建设局网站有没有可以做app的网站
  • 网站域名注册哪个好小游戏网站怎么做
  • 国外做健康的网站小困网络科技泰安有限公司
  • 免费行情软件网站下载ww开发移动网站
  • 东莞网站优化电话上传网站教程
  • 旅游项目网站开发网站内容建设包括什么
  • 备案 网站错了宠物用品wordpress模板
  • 网站备案帐号无法安装wordpress
  • 网站开发收费标准网站安全 代码
  • 湛江模板建站定制网站海淀网站建设联系方式
  • 企业做网站要注意些什么问题电脑版浏览器在线使用
  • 亚马逊站外deal网站开发平台为用户提供了哪四类应用开发
  • 沧州网站建设费用网站文件下载系统
  • 做网站用需要几个软件宿迁网站建设电话
  • 电商网站排行官方网站建设方案图