java并发编程之- java内存模型

java并发编程之内存模型(JMM)

学习java并发编程,首先要了解java的内存模型(JMM),注意一定要和JVM运行时的内存区域相区别;

JMM是一组抽象的概念,并不是真实存在的,他描述的是一组规则或者规范;其实我们脑子里肯定会有一个问题;
那就是为什么要有JMM
用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量;

说了这么多,其实就是说,java对底层进行了重新的抽象,提供了一些易于使用的API,易于开发这使用,使用面向对象编程核心概念抽象理解;

可以利用JMM解释我们很多在并发编程中遇到的问题;
这就是java对JMM的

由于JVM运行程序的实体是线程,在每个线程创建时JVM都会为他们创建工作内存(栈空间),工作内存都是 私有数据区域,而java的内存模型规定所有的变量都存储在主内存中,主内存是 共享的数据区域,所有线程都可以访问,但是线程对变量操作必须在工作内存中执行;首先将变量复制到自己的工作内存,对变量进行操作之后,在将变量写会主内存,不能直接操作主内存中的变量,各个线程的工作内存中存放着主内存中共享变量副本拷贝,线程无法直接访问对方的工作内存,所以线程间的通信必须通过主内存来进行;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值