引言 在现代计算机中,cpu的指令速度远超内存的存取速度,由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束 ...
分类:
其他好文 时间:
2019-12-11 09:22:43
阅读次数:
81
恢复内容开始 1. java内存模型即java Memory Model,简称JMM.JMM定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 2.并发编程有两个关键问题:线程之间的通信和同步。 3.线程之间的通信机制有两种:共 ...
分类:
编程语言 时间:
2019-12-03 19:38:23
阅读次数:
89
1基本概念: 程序:代码,完成某一件任务,代码序列(静态的概念) 进程:程序在某些数据上的一次运行(动态的概念) 线程:一个进程可能包含一个或多个线程(占有资源的独立单元) 2 JVM与线程 JVM什么时候启动? 类被调用 JVM线程 》其他的线程(main) 线程在JVM中 3 JVM内存区域 方 ...
分类:
编程语言 时间:
2019-11-28 01:21:36
阅读次数:
106
JMM与问题引入 为啥先说JMM,因为CAS的实现类中维护的变量都被volatile修饰, 这个volatile 是遵循JMM规范(不是百分百遵循,下文会说)实现的保证多线程并发访问某个变量实现线程安全的手段 一连串的知识点慢慢缕 首先说什么是JMM, JMM就是大家所说的java的内存模型, 它是 ...
分类:
编程语言 时间:
2019-11-27 00:27:50
阅读次数:
60
作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/7518259.html 一、什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各 ...
分类:
编程语言 时间:
2019-11-23 23:50:21
阅读次数:
112
课程学习总结 一、菜单组件 JMenuBar组件的功能是用来摆放JMenu组件,当建立完多个JMenu组件之后,需要通过JMenuBar组件来将JMmenu组件加入到窗口中 1.JMenu与JMenuBar的常用方法 2.JMenuItem。如果菜单中要加入菜单项,可以使用JMenuItem JMe ...
分类:
其他好文 时间:
2019-11-23 21:38:19
阅读次数:
68
Java8内存模型—永久代(PermGen)和元空间(Metaspace) 一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创 ...
分类:
编程语言 时间:
2019-11-22 23:30:56
阅读次数:
94
总线锁、缓存锁、MESI缓存一致性协议、CPU 层面的内存屏障 1.JMM定义: Java Memory Model(java内存模型)是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无关具体平台的统一的保证。(可能在术语上与Java运行时内存分布有歧义,后 ...
分类:
编程语言 时间:
2019-11-22 00:58:53
阅读次数:
76
知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。 Java内存模型(JMM) JVM内存模式是JVM的内存分区 Java内存模式是一种虚拟机规范 1. Jvm内存按照运行时态及内存规范划分 2. Java内存区域 2.1 线程安全 2. ...
分类:
编程语言 时间:
2019-11-17 13:08:22
阅读次数:
103
在并发编程中分析线程安全的问题时往往需要切入点,那就是两大核心:JMM抽象内存模型以及happens-before规则Java内存模型以及happens-before规则,三条性质:原子性,有序性和可见性。关于synchronized和volatile已经讨论过了,就想着将并发编程中这两大神器在 原... ...
分类:
编程语言 时间:
2019-11-16 17:48:13
阅读次数:
80