首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

深入讨论一上java的多线程是怎么访问成员变量的

2013-02-25 
深入讨论一下java的多线程是如何访问成员变量的。 这几天我在研究学习多线程,讨论说不上,只能说和大家学习

深入讨论一下java的多线程是如何访问成员变量的。
 这几天我在研究学习多线程,讨论说不上,只能说和大家学习学习,我下面有一幅图:深入讨论一上java的多线程是怎么访问成员变量的
这幅图说明的是一个成员变量与一个线程的关系,那么多个线程与多个成员变量他们的关系应该是怎么样的呢,希望能用图来表示,那么就更清晰一些了 多线程 java
[解决办法]
http://ifeve.com/java-memory-model-0/
http://www.ticmy.com/?p=315
http://ifeve.com/jmm-cookbook/


以上文章是楼主想看的
[解决办法]
图中有两个很重要的字 "副本" 

多个线程访问一个成员变量时  每个线程都会得到一个该变量的副本  在自己的线程的栈中保存、计算 以提高速度。  但是这样就会有同步的问题了。   当一个线程修改了自己栈内副本的值  还没有立即将同步到主存中, 其他线程再来获取主存中的该变量时  就会得到过期数据  , 为了解决这种问题 可以使用synchronized对该变量的操作同步 , 或使用volatile关键字声明该变量为易变对象  这样的话 每个线程就不会创建副本到自己的栈中  而是直接操作主存  

热点排行