自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

转载 多线程与锁

下面是这章内容的总体导图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eiyx2yFs-1607418761282)(7752F5FA74704BC3914FA791216EB365)]1. 乐观锁与悲观锁乐观锁与悲观锁是一种广义上的概念, 体现了看待线程同步的不同角度, 在Java和数据库中都有此概念对应的实际应用对于同一个数据的并发操作, 悲观锁认为自己的使用数据的时候一定有别的线程来修改数据, 因此在获取数据的时候会先加锁, 确保数据不会被别的线程修改, Jav

2020-12-12 17:11:01 295

原创 五、线程安全和锁优化,来自《深入理解Java虚拟机》

1. 线程安全的实现方法1.1 互斥同步互斥同步是一种最常见也是最安全的并发正确性保障手段在Java里最基本的互斥手段就是synchronized关键字, 这是一种块结构的同步语法, synchronized经过编译后会生成monitorenter和monitorexist这两个字节码指令, 实际上就是对应Java内存模型中的lock和unlock操作, 这两个字节码都需要一个reference类型的参数来指明要锁定的对象, 如果Java源码中的synchronized明确指定了对象, 那么就以这个对

2020-12-07 00:57:52 117

原创 四、Java内存模型与线程, 来自《深入理解Java虚拟机》

1. 什么是Java的内存模型内存模型可以理解为在特定的操作协议下, 对特定的内存或高速缓存进行读写访问的过程Java内存模型规定了所有的变量都存储在主内存中, 这里的主内存其实就是虚拟机内存的一部分, 每条线程还有自己的工作内存, 工作内存保存了被该线程使用的主内存副本,每一个线程都没有办法直接操作主内存的数据, 不同的线程也没有办法互相访问对方工作内存, 所以他们所有的数据传递都必须通过主内存来进行, 他们的关系如下图所示2.1 内存间的交互操作关于主内存和工作内存之间具体的交互协议, 即一个

2020-12-06 14:45:46 87

原创 三、类加载机制, 来自《深入理解Java虚拟机》

以下内容只是简单整理, 详细知识请阅读《深入理解Java虚拟机》一书类加载机制1. 类加载过程1.1 类什么时候加载遇到new(使用new创建对象), getstatic(读取一个类型的静态字段), putstatic(设置一个类型的静态字段), 或者invokestatic(调用一个类型的静态方法)这四条字节码指令时, 如果类型没有被初始化, 则需要先触发其初始化使用Java.lang.reflect包中的方法对类型进行反射调用的时候, 如果类型没有初始化, 需要先初始化当类初始化时, 其父

2020-11-27 23:17:01 80

原创 二、垃圾回收与内存分配, 来自《深入理解Java虚拟机》

所有内容均来自《深入理解Java虚拟机》, 部分比较拗口的内容用自己能明白理解的白话转述了下, 书本讲的非常详细, 这里只做简单引导试写出来, 供快速了解大致内容, 如果对原书知识理解有错, 请大家指出, 必虚心接受1. 垃圾回收与内存分配1.1 可达性分析算法这个算法的基本思路就是通过一系列被称为GC Roots的根对象作为起始节点, 从这些节点开始, 根据引用关系向下搜索, 搜索过程走过的路径称为"引用链", 如果某个对象到根节点没有引用链相连接, 那么则判断这个对象已死.1.1.1 那些可

2020-11-26 16:01:13 108

原创 一、内存区域和内存溢出

整理一期JVM系列, 内容基本来自深入理解JAVA虚拟机这本书, 书本讲的比较详细, 所以把一些关键东西整理一下, 反复学习, 其中对个别地方加入了自己的理解, 如果理解有错误, 还希望大家指出, 必虚心接受, 文章类型实在不知道如何选, 转载需要原文地址, 翻译也不是, 就先选择原创吧内存区域和内存溢出1. JVM的运行时数据区域程序计数器: 程序计数器是一块儿比较小的内存空间, 它可以看作是当前线程所执行的字节码的行号指示器, 字节码解释器工作时就是通过改变这个计数器的值来选取下一条所要执行的字

2020-11-19 10:23:26 138 1

原创 Redis一些入门知识

Redis1. redis常用数据类型2. redis常见的一些问题2.1 redis雪崩:处理办法:2.2 redis穿透:处理办法:2.3 redis击穿解决办法:3. redis的持久化redis提供了两种持久化方案:3.1 AOF3.2 RDB3.3 应该如何选择4. redis的淘汰策略(LRU)5. redis的主从同步5.1 CAP 原理:5.2 同步时主要的两个命令5.3 主从复制的原理5.4 全量复制的流程5.5 部分复制的过程5.6 哨兵模式5.6.1. 哨兵模式的工作原理7. 布隆过滤

2020-11-13 09:20:03 126

空空如也

空空如也

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

TA关注的人

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