jni java 内存共享_Java 内存模型_1

title: Java 内存模型_1

date: 2017-01-15 17:11:02

tags: [JMM]

categories: [Programming,Java]

概述

本文记录 Java 中的内存模型的基础部分1。

本篇作为学习 Java 内存模型基础部分的笔记,加上些许自己的理解和解释.

为什么需要理解 Java 内存模型

结论:并发产生的内存可见性问题.

并发编程中的两个关键问题:

线程之间如何通行(以何种机制来交换信息)

线程之间如何同步

已有的通信机制:

共享内存: 线程之间共享程序的公共状态,线程之间通过读写内存中的公共状态来隐式进行通信.

消息传递: 在这种模型中,线程之间没有公共状态,线程之间必须通过发送消息显式地通信.

同步,指的是控制不同线程之间操作发生的相对顺序的机制:

在共享内存模型中,程序员必须显式的指定某个方法或者某段代码需要在线程之间互斥执行.

在消息传递的模型里,由于消息的发送必须在消息的接收之前,因此,同步是隐式进行的.

java 采用的是共享内存模型,而 java 线程之间的通信总是隐式进行,整个通信过程对程序员完全是透明的.

对于 java 程序员而言,如果不了解 java 内存模型,在编写多线程程序的时候,就会遇到各种各样的内存可见性的问题.所以,对 java 的内存模型需要有一定的了解.

Java 采用的共享内存模型是什么样的

Java 采用的是共享内存模型作为线程间的通信机制.

共享内存: 堆内存,在 java 中,所有的 实例域,静态域和数组元素 存储在堆内存中,堆内存在线程之间共享.

局部变量,方法定义的参数和异常处理参数,不会在线程之间共享,它们不会有内存可见性问题,也不受内存模型的影响.

Java 线程之间的通

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值