没有合适的资源?快使用搜索试试~ 我知道了~
java并发之内存模型.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 74 浏览量
2022-06-21
22:03:02
上传
评论
收藏 241KB DOCX 举报
温馨提示
试读
5页
在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,通过写- 读内存中的公共状态进行隐式通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式进行通信。Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式进行,整个通信过程对程序员完全透明。如果编写多线程程序的Java程序员不理解隐式进行的线程之间通信的工作机制,很可能会遇到各种奇怪的内存可见性问题。
资源推荐
资源详情
资源评论
java 并发之内存模型
背景:在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间
如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种
机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和
消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-
读内存中的公共状态进行隐式通信。在消息传递的并发模型里,线程之间没有
公共状态,线程之间必须通过发送消息来显式进行通信。Java 的并发采用的是
共享内存模型,Java 线程之间的通信总是隐式进行,整个通信过程对程序员完
全透明。如果编写多线程程序的 Java 程序员不理解隐式进行的线程之间通信的
工作机制,很可能会遇到各种奇怪的内存可见性问题。
java 内存模型:Java 虚拟机规范中试图定义一种 Java 内存模型来屏蔽掉各种
硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一
致的内存访问效果。Java 内存模型的主要目标是定义程序中各个变量的访问规
则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。
Java 内存模型规定了所有的变量都存储在主内存(Main Memory)中。每条线
程还有自己的工作内存(Working Memory),线程的工作内存中保存了被该线
程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取、赋值等)
都必须在工作内存中进行,而不能直接读写主内存中的变量。不同的线程之间
也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内
存来完成,线程、主内存、工作内存三者的交互关系如图所示。
资源评论
小兔子平安
- 粉丝: 209
- 资源: 1940
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功