自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

没头脑遇到不高兴

好好学习,天天向上!

  • 博客(5)
  • 资源 (4)
  • 收藏
  • 关注

原创 原子性、可见性、有序性与happen-before原则

1.原子性(Atomicity)原子性指的是一个操作是不可中断的,即使是在多线程环境下,一个操作一旦开始就不会被其他线程影响。由Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和write这六个,我们大致可以认为,基本数据类型的访问、读写都是具备原子性的(例外就是long和double的非原子性协定)。如果应用场景需要一个更大范围的原子性保证(经常会遇到),Java内存模型还提供了lock和unlock操作来满足这种需求,尽管虚拟机未把lock和unlo

2020-12-29 21:28:23 825 2

原创 volatile内存语义、原理详解、内存屏障

volatile

2020-12-25 20:59:45 8710 8

原创 JMM内存模型介绍

一、JMM的定义1.什么是JMM《Java虚拟机规范》中曾试图定义一种“Java内存模型”(Java Memory Model简称JMM)来屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。Java内存模型是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JMM是围绕原子性,有序性、可见性展开。2.主内存与工作内存Java内存模型的主要目的是定义程

2020-12-17 13:20:12 625

原创 计算机多级缓存架构和MESI缓存一致性协议

本节将介绍一下计算机的多级缓存(L1、L2、L3)架构、多级缓存与主存怎么进行数据交互的,另外会对MESI(缓存一致性协议)做下介绍,为后面的JMM模型、volatile关键字的学习打下基础。一,现代计算机硬件基本结构1.总线上面图中大部分都比较好理解(如果想详细了解的话可以看下计算机操作系统相关的书籍,了解一下冯诺依曼计算机模型等基础知识。),这里先介绍一下总线:贯穿整个系统的是一组电子管道,称作总线,它携带信息字节并负责在各个部件间传递,计算机的各个组件如CPU、内存、磁盘等通过总线进行

2020-12-13 17:12:45 1060 1

原创 Java中的线程基本概念

二、什么是线程现代操作系统在运行一个程序时,会为其创建一个进程。例如,启动一个Java程序,操作系统就会创建一个Java进程。现代操作系统调度CPU的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行。线程的实现可以分为两类:1、用户级线程(User-Level Thread)2、内核线线程(Kern

2020-12-04 20:59:26 738

dubbo面试题

dubbo常见的面试题,序列化,注册中心,原理,核心配置......

2018-09-27

java面试题合集

本文档是一个java面试题的合集,其中包括java的基础,javaweb部分,java多线程,框架部分(springMvc,Spring,mybatis...),数据库部分,源码解析,算法......

2018-09-27

jstl-1.2.jar

jstl-1.2.jar

2014-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除