JVM内存模型(线程栈)

java初级程序员和中级程序员的分界的知识点有:Linux、JVM、多线程、设计模式,所以最近开始啃JVM,以下文字留作笔记以供复习。

Java内存模型顾名思义,"模型"表明这是一个虚拟出来的东东,jvm规范虚拟出这个模型的目的主要是为了屏蔽计算机硬件层面的概念,毕竟JVM的目的就是干这个的。

在计算机硬件层面的内存的概念稍微说一点,之前学校里学的都忘得差不多了(其实当初估计也没认真听课)。而且另一方面如今计算机的硬件架构的更新也比较快。硬件系统的内存一般有:CPU寄存器、高速缓存、内存。一般高速缓存又有3级:L1,L2,L3,CPU又有多核,所以硬件本身就是存在内存读写不一致的问题,但是硬件之上的操作系统(操作系统也是一个软件)有自己的解决办法(总线加锁、intel提出的 MESI协议)去保证读写一致,所以操作系统在运行过程中能保证读写一致,保证操作系统运行结果符合预期。

Java的程序是运行在JVM中的,而JVM中的线程最终也会交给硬件CPU去执行。
具体的流程是:我们在使用Java线程,内部会调用操作系统(OS)的内核线程(Kernel-Level Thread),这种线程是操作系统内核(Kernel)直接支持的,内核通过调度器,对线程进行调度,并将线程交给各个CPU内核去处理。

因此Java开发的软件也需要解决因为硬件内存不一致这种问题。

所以JVM中多线程会存在读写不一致的问题,我们的解决办法有哪些呢?

以上说这么多就是为了引出Java内存模型的概念。这就是上面为什么说Java内存模型是一个虚拟出来的东东,目的是为了屏蔽计算机硬件的内

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值