美文网首页
jvm内存模型

jvm内存模型

作者: 44c69bb3f482 | 来源:发表于2018-06-07 09:18 被阅读5次

    线程通信:线程之间通过共享内存,消息传递的方式进行通信:共享内存通过读取内存中的公共状态来达到彼此间的通信 - 其过程是隐式的;消息传递则没有公共状态必须明确发送消息进行通信如:wait(),notify()。java线程通信是隐式的透明的。java线程通信由JMM控制。

    线程改变变量的过程:每个线程都会有自己的本地内存 - 本地内存中的变量直接从主内存中拷贝到自己的本地内存中,多线程不可访问其他线程的本地内存,本地内存仅自己可见。当一个线程试图去改变主内存中变量值得时候需经过以下步骤:图 -

    当多个线程共享主内存中的一个变量时 - 流程如下:

    线程阿通信线程乙需经过主内存方可通信。共享变量

    JVM对内存(软件层次)划分为堆,栈:

    计算机硬件内存与JVM内存:

    当在多线程情况下若没有对线程进行同步则:

          线程甲从内存读取数据Ť到JVM中,线程甲对数据Ť进行修改但是未刷新到内存中去;此时线程乙又从内存中读取数据T,此时数据Ť并不是线程甲修改后的值。

    则此时需要使用synchronized同步对线程进行同步,仅有一个线程对数据进行操作,其他线程等待操作结束继续操作;使用volatile修饰变量则可以保证线程每次读到数据 总是最新的。

    相关文章

      网友评论

          本文标题:jvm内存模型

          本文链接:https://www.haomeiwen.com/subject/blwojftx.html