老李谈JVM内存模型
2016-02-23 17:21
197 查看
老李谈JVM内存模型
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。
JVM内存模型 - 主内存和线程独立的工作内存
Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存,线程只能访问自己的工作内存,不可以访问其它线程的工作内存。工作内存中保存了主内存共享变量的副本,线程要操作这些共享变量,只能通过操作工作内存中的副本来实现,操作完毕之后再同步回到主内存当中。如何保证多个线程操作主内存的数据完整性是一个难题,Java内存模型也规定了工作内存与主内存之间交互的协议,首先是定义了8种原子操作:
(1) lock:将主内存中的变量锁定,为一个线程所独占
(2) unclock:将lock加的锁定解除,此时其它的线程可以有机会访问此变量
(3) read:将主内存中的变量值读到工作内存当中
(4) load:将read读取的值保存到工作内存中的变量副本中。
(5) use:将值传递给线程的代码执行引擎
(6) assign:将执行引擎处理返回的值重新赋值给变量副本
(7) store:将变量副本的值存储到主内存中。
(8) write:将store存储的值写入到主内存的共享变量当中。
相关文章推荐
- 老李谈HTTP1.1的长连接
- Okhttp Logging Interceptor
- HUST 1376 Random intersection
- behemoth - 04
- 简单的入门概念变量
- 谷歌AdMob与Unity3D
- 1028. 人口普查(20)
- APUE 头文件 "apue.h" 中包含的头文件解释
- linux字符驱动之定时器去抖动按键驱动
- H5 缓存机制浅析 移动端 Web 加载性能优化
- mybatis foreach使用总结
- Unity3D学习笔记(十一)物理引擎:刚体与力
- 偶2016年要做的几件大事
- 查看Linux占用流量的进程
- Activity详解 (六) : Activity中常用函数说明
- 【CSS3】:checked选择器
- Android性能优化一些方法
- tky项目第①个半月总结
- SQL利用通配符进行模式查询
- 老李谈爬虫