java 内存模型
2018-12-12 09:23:13来源:博客园 阅读 ()
1 平台的内存模型
在共享内存的多处理器体系架构中,每个处理器都拥有自己的缓存,并且定期的与主内存进行协调。
串行一致性:程序只存在唯一的执行顺序,而不考虑这些操作在何种处理器上执行,并且在每次读取变量时,都能获取执行序列中(任何处理器)最近一次写入该变量的值。
在现代支持共享内存的多处理器中,当跨线程共享数据时,会出现奇怪的情况,在java中需要使用适当的同步方法。在底层是使用内存栅栏来实现。
2 Happens-Before 规则
程序顺序规则:如果程序中 操作A 在操作B 之前,那么线程中 操作A 将在 操作B 之前执行。
监视器锁规则:在监视器锁上的解锁操作必须在同一个监视器锁上的加锁操作之前执行。
volatile 变量:对 volatile 变量的写入操作必须在对该变量的读操作之前执行
线程启动规则:在线程上对 Thread.Start 的调用必须在该线程中执行任何操作之前执行。
线程结束规则:线程中的任何操作都必须在其他线程检测到该线程已经结束之前执行,或者从 Thread.Join 中返回,或者调用 Thread.isAlive 时返回false
传递性:如果 操作A 在 操作B 之前,并且 操作B 在 操作C 之前执行,那么 操作A 必须在 操作C 之前执行。
3 在 java 内存模型中, final 域能确保初始化过程的安全性,从而可以不受限制的访问不可变对象。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash