IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JVM虚拟机内存模型 -> 正文阅读

[Java知识库]JVM虚拟机内存模型

Java内存模型JVM

并发处理的广泛应用是Amdahl定律代替摩尔定律 成为计算机性能发展动力的根本原因

为什么要有高并发

多线程是现代计算机操作系统中几乎已经是一项必备功能

1、计算计算机运算能力清大

2、运算速度与存储和子系统的速度差距太大

3、大量的时间都花在磁盘I/O 网路络通信和数据库访问上

如果不希望处理器大部分时间都处于等待其他资源的空闲状态 就必须使用一些手段去把处理器的运算能力压榨出来否则就会造成很大的性能浪费

衡量一个服务性能高低好坏每秒事务处理数 是重要指标之一 计算量相同的的任务 程序线程并发协调有条不紊 效率越来越高 线程之间频繁争用 相互阻塞甚至死锁 将会大大降低程序的并发能力

硬件的效率与一致性

处理器至少要与内存交互 读取运算数据 存储运算数据 这个I/O操作就是很难消除即无法仅靠寄存器来完成所有的运算任务

由于计算机的存储设备与处理的运算速度有着几个数量级的差距 所以现代计算机系统都不得不加入一层或多层读写数据尽可能接近处理器运算速度的高速缓存 来作为内存与处理器之间的缓冲 将运算需要的数据复制到缓冲中 让运算快熟进行 当运算结束后再从缓存同步内存之中

在多路处理器系统中 每个处理器都有自己告诉缓存 而他们又共享同一个主内存 这种内存称之为共享内存多核系统

在这里插入图片描述

除了增加高速缓存之外 为了使处理器内部的运算单元能尽量被充分利用处理器可能会对输入代码进行乱排序执行(out-of-order Execution)优化 处理器会在计算之后将乱序执行进行

主内存与工作内存

Java内存的模型的主要目的是定义程序中各种变量的访问规则

Java内存模型规定了所有的变量都存储在主内存中。

每条线程又自己工作的内存 线程的工作内存保存了被改线程使用对的变量的主内存副本,

线程对变量的所有的操作必须在工作内存中进行,而不能直接读写主内存中数据 不同的线程之间也无法直接访问对方工作内存中的变量

线程间变量的传递需要通过主内存来完成

在这里插入图片描述

内存间交互操作

Java虚拟机保证内存操作每一项都是原子的不可再分的 对于doule long 可以分开 64x86 用32运算可以分成两步来进行操作

lock锁定 作用于主内存额变量 把一个变量标识为一条线程独占状态

unlock 作用主内存的变量 把一个处于锁定状态的变量释放出来 释放后的变量才可以被其他线程锁定

read 作用主内存的变量 把一个变量从主内存传输到线程的工作内存中 以便load操作

load 作用工作内存的变量把一个变量的值放入工作内存的变量副本中

use 作用工作内存的变量 把工作内存的变量的值传递给执行引擎 每当虚拟机遇到一个需要使用变量的值字节码指令时将会执行这个操作

assign 作用域工作内存变量 把一个执行引擎接收到的值赋值给工作内存的变量 每当虚拟机遇到一个给变量赋值的字节码指令时 执行该操作

store 作用 于工作内存的变量 把工作内存中一个变量值传到主内存中 以便随后write擦欧总

write 及作用于只能没存变量 把store操作内存值得到变量放入到主内存的变量中

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 09:29:41  更:2021-08-06 09:30:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/12 9:38:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码