当前位置: 首页 > news >正文

JUC系列JMM学习之随笔

JUC: JUC 是 Java 并发编程的核心工具包,全称为 Java Util Concurrent,是 java.util.concurrent 包及其子包的简称。它提供了一套强大且高效的并发编程工具,用于简化多线程开发并提高性能。

CPU核心数和线程数的关系:1核处理1线程(同一时间单次)

CPU内核结构:

工作内存:高速缓冲区(存在原因:内存条读写速度跟不上CPU处理速度)

主内存:内存条

Linux系统:单核最大线程为1000

JMM: Java内存模型(JMM - Java Memory Model)

  • 主内存(Main Memory):所有共享变量的存储区域

  • 工作内存(Working Memory):每个线程私有的内存空间,保存该线程使用到的变量副本

缓存一致性:

多个CPU从主内存读取同一个数据到各自的高速缓存,当其中某个CPU修改了缓存里的数据,该数据马上同步会主内存,其他的CPU通过总线嗅探机制可以感知到数据的变化从而将自己缓存的数据失效

内存间交互操作

JMM定义了8种原子操作:

  1. lock(锁定):作用于主内存变量

http://www.dtcms.com/a/108938.html

相关文章:

  • 基于vscode(GDB)调试ros2节点
  • 基于腾讯云EdgeOne Pages技术轻松搭建专属的对话型 AI 网站
  • 基于ResNet18的Cifer-10数据集图像分类
  • UE5学习笔记 FPS游戏制作42 按钮添加回调函数
  • SpringBoot项目Sa-token框架整合JWT
  • 每天学一个 Linux 命令(12):chown
  • flutter 项目结构目录以及pubspec.ymal等文件描述
  • /////////
  • [MySQL初阶]MySQL库的操作
  • 位置编码(Positional Encoding, PE)的作用
  • 开源AI模型落地教程:如何在个人电脑安装并运行QwQ-32B大模型
  • 【MyBatis】深入解析 MyBatis:关于注解和 XML 的 MyBatis 开发方案下字段名不一致的的查询映射解决方案
  • 【Linux】动静态库知识大梳理
  • Android Gradle、Android Gradle Plugin、BuildTool关系
  • 真实笔试题
  • Smallworld Geo Network Management(GNM):电力-通信-公共设施GIS平台
  • 树莓派 5 部署 OMV(OpenMediaVault)
  • 解决docker的ubuntu系统中文乱码问题
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(十)
  • 深度学习 Deep Learning 第16章 结构化概率模型
  • STM32单片机入门学习——第10节: [4-2] OLED显示屏
  • 图扑 HT 电缆厂 3D 可视化管控系统深度解析
  • Tmux 核心操作速查指南
  • 解释回溯算法,如何应用回溯算法解决组合优化问题?
  • Android Settings 有线网设置界面优化
  • 基于springboot的考研成绩查询系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 【C++】Cplusplus进阶
  • 2025徘徊与坚守:在传统与变革间寻找自己
  • 启服云专利管理系统:铸就知识产权保护的坚固壁垒
  • 基于YOLOv8的热力图生成与可视化:支持自定义模型与置信度阈值的多维度分析