Java内存模型

Java内存模型屏蔽了硬件差异,确保跨平台的一致性。运行时数据区将内存划分为不同区域,包括堆、栈等。在并发编程中,Java采用共享内存模型,线程通过读写内存进行隐式通信并使用同步原语如happens-before原则确保线程安全。
摘要由CSDN通过智能技术生成
  • Java内存模型(JVM)和Java运行时数据区

  • 内存模型就是对特定的内存或者高速缓存进行读写访问的过程抽象描述和约定,不同架构下的物理机或者操作系统拥有不一样的内存模型,而Java虚拟机是一个实现了跨平台的虚拟系统。【不同的硬件之间的内存模型有些许差异,Java内存模型屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到⼀致的内存访问效果】

  • Java运行时数据区才是将内存分成某些具体的部分,以及各部分分别存放什么。

  • JVM大致可以概括为3个基本部分:

  • 基本的模型

  • 3个同步原语的内存模型

  • happens-before(JVM最核心的概念)

通信和同步

  • 在并发编程中,线程间的通信有两种模型:共享内存和消息传递。

  • 共享内存是指线程间共享,通过读写内存中的共功状态来实现隐式通信,消息传递线程间没有共享状态,线程间必须通过发送接受消息来进⾏显⽰通信。共享内存的同步是显⽰进⾏的,必须显⽰的指定某个⽅法或者某段代码在程序之间互斥执⾏,⽽消息传递的同步是隐式执⾏的,消息的发送⼀定在消息的接受之前嘛。

  • Java采⽤的是共享内存模型,隐式通信,显⽰同步

共享模型

  • 简单来说就是一个主内存,每个线程有自己的工作内存。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值