自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 13.ThreadLocal

ThreadLocal类型的变量为线程本地变量,大概的原理就是建立了一个Map,然后key是线程,value是指,通过get方法就能取到每个线程自己的变量副本1. ThreadLocal使用2. ThreadLocal源码分析public class ThreadLocal<T> { // 设置属性 public void set(T value) { ...

2019-12-30 20:17:02 239

原创 12.线程池

文章目录1. 线程池复用线程的原理2. 线程池处理流程3. 线程池的使用3.1. 线程池的创建3.1.1. 可用任务队列3.1.2. 线程工厂3.1.3. 拒绝处理器3.1.4. 超时处理3.2. 向线程池提交任务3.3. 关闭线程池4. 线程池状态5. ScheduledThreadPoolExecutor5.1. 任务提交方法5.2. 提交任务6. Executors 工厂类的使用6.1 Th...

2019-12-30 20:16:28 256 1

原创 11.Actomic原子类

文章目录1. 原子更新基本类型类2. 原子更新数组3. 原子更新引用类型4. 原子更新字段类1. 原子更新基本类型类AtomicBoolean:原子更新布尔类型AtomicInteger:原子更新整型AtomicLong:原子更新长整型常用方法如下:int addAndGet(int delta):以原子方式将输入的数值与实例中的值(AtomicInteger 里的 value)...

2019-12-30 20:15:55 1314

原创 10.Lock

StampedLock文章目录1. Lock接口1.1. Lock的简单使用1.2. Lock接口说明1.3. ReentrantLock的加锁实现2.ReadWriteLock接口2.1. ReadWriteLock接口简单使用2.2. ReadWriteLock 接口说明2.3. ReentrantReadWriteLock 实现2.3.1.lock 加锁2.3.2. unlock解锁2.3...

2019-12-30 20:15:18 156

原创 9.AQS

文章目录1. AQS中队列实现1.1. Node介绍1.2. 队列相关属性1.2.1. head节点1.2.2. tail尾节点1.3.方法1.3.1. 设置head compareAndSetHead(Node update)1.3.2. 设置tail compareAndSetTail(Node expect, Node update)1.3.3. 修改node的后驱节点 compareAnd...

2019-12-30 20:14:38 242

原创 8.LockSupport

文章目录1. 简单示例2. 源码解读2.1. park2.2. unparkLockSupport主要用于对线程执行暂停(park)和唤醒(unpark)1. 简单示例public class LockSupportTest { static Thread t1,t2 = null; public static void main(String[] args) { ...

2019-12-30 20:13:52 125

原创 7.final

文章目录1. final的指令重排1.1. 赋值`final属性`的指令重排1.2. 读取`final属性`的指令重排1.3. `final属性`为引用类型1. final的指令重排对于 final 域,编译器和处理器要遵守两个重排序规则。在构造函数内对一个final变量赋值,与随后把这个被构造对象的引用赋值给一个变量,这两个操作之间不能重排序初次读一个包含final变量的对象,与随后初...

2019-12-30 20:13:14 186 1

原创 6.synchronized

文章目录1. 锁的升级1.1. 偏向锁1.2. 轻量级锁1.3. 重量级锁2. 锁与可见性(内存刷新)Java 中的每一个对象都可以作为锁。具体表现为以下3种形式。对于普通同步方法,锁是当前实例对象。对于静态同步方法,锁是当前类的 Class 对象。对于同步方法块,锁是 Synchonized 括号里配置的对象。1. 锁的升级1.1. 偏向锁偏向的意思是,偏向锁假定将来只有第一...

2019-12-30 20:12:25 116

原创 5.volatile

文章目录1. 并发开发中的变量不可见问题1.1. 问题现象1.2. 问题产生的原因1.3. MESI MSI MOS Synapse Cache 一致性协议2. 使用 volatile 解决变量不可见问题3. volatile原理3.1. volatile 的特性3.2. volatile 的实现原则3.3. volatile在字节码中的实现3.4. volatile有序性的实现1. 并发开发中...

2019-12-30 20:11:44 135

原创 4.Java内存模型JMM

文章目录1. 线程通信2. 线程同步3. 内存模型3.1. 内存模型分类3.2. JMM 的内存可见性保证JMM 属于语言级的内存模型,它确保在不同的编译器和不同的处理器平台之上,通过禁止特定类型的编译器重排序和处理器重排序,为程序员提供一致的内存可见性保证.在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步.1. 线程通信通信是指线程之间以何种机制来交换信息。在命令式...

2019-12-30 20:10:39 110

原创 3.缓存一致性-指令重排-内存屏障

文章目录1. 缓存一致性2. 指令重排2.1. 重排的类型2.2. 数据依赖性2.3. as-if-serial 语义2.4. 程序顺序规则happens-before2.5. 指令重排对多线程的影响3. 内存屏障3.1. LoadLoad屏障3.2. StoreStore屏障3.3. LoadStore屏障3.4. StoreLoad屏障1. 缓存一致性为了保证内存可见性,Java 编译器在...

2019-12-30 20:09:35 546 2

原创 2.线程状态

文章目录1. 状态详解1.1. NEW1.2. RUNNABLE1.3. WAITING1.4. TIMED_WAITTING1.5. BLOCKED1.6. TERMINATED线程根据其生命周期分成一下几种状态NEW 新建线程刚创建RUNNABLE 可运行在JVM中正在运行的线程BLOCKED 阻塞线程处于阻塞状态,等待监视...

2019-12-30 20:08:30 145 1

原创 1.线程解析

文章目录1. 线程组ThreadGroup1.1. 成员变量1.2. 主要函数2. 线程2.1. 线程定义2.2. 线程启动2.3. 线程优先级2.4. 线程状态2.5. Daemon 线程2.6. 中断线程2.7. 类解析2.7.1. 成员变量2.7.2. 主要函数2.7.3. 重点函数分析2.7.3.1. join2.7.3.2. sleep2.7.3.3. yield2.8. 线程间通知wa...

2019-12-30 20:07:28 214

原创 8.JVM-启动参数

文章目录1. 参数类型2. 常用配置2.1. JVM 运行模式2.2. JVM 对字节码的处理2.4. 堆内存设置2.5. 线程配置2.6. 垃圾收集器设置2.7. Agent 相关的选项1. 参数类型标准参数以-开头为标准参数,所有的 JVM 都要实现这些参数,并且向后兼容非标准参数以-X开头为非标准参数, 基本都是传给 JVM 的,默认 JVM 实现这些参数的功能,但是并不保...

2019-12-12 22:27:16 181

原创 7.JVM-字节码执行引擎

文章目录1. 概念补充1.1. 访问修饰符1.2. 异常1.3. 重载1.4. 重写1.5. 多态1.6. 分派1.7. 静态类型和实际类型1.8. 虚方法1.9. 宗量2. 方法调用2.1. 解析2.2. 分派2.2.1. 静态分派2.2.2. 动态分派2.2.3. 单分派和多分派2.2.4. 动态分派的实现2.3. 动态类型语言支持2.4. 字节码解释执行引擎1. 概念补充1.1. 访问修...

2019-12-12 22:26:28 97

原创 6.JVM-类加载和双亲委托

文章目录1. 类的生命周期1.1. 加载(Loading)1.2. 连接(Linking)1.2.1. 验证(Verification)1.2.2. 准备(Preparation)1.2.3. 解析(Resolution)1.3. 初始化(Initialization)1.3.1 初始化的时机1.4. 使用(Using)1.5. 卸载(Unloading)2. 类加载器2.1. 双亲委派模型1....

2019-12-12 22:25:49 90

原创 5.JVM-JDK工具

在JDK根目录下的bin目录中,JDK提供了很多用于监控虚拟机的工具。这些工具中很多都是使用lib/tools.jar来包装进行实现的。1. 命令行工具名称全称主要作用jpsJVM Process Status Tool显示指定系统内所有的HotSpot虚拟机进程jstatJVM Statistics Monitoring Tool用于收集HotSpot虚...

2019-12-12 22:24:50 111

原创 4.JVM-垃圾收集器

文章目录1. 垃圾回收算法1.1. 标记-清除算法1.2. 复制算法1.3. 标记-整理算法1.4. 分代收集2. 垃圾收集器2.1. 垃圾收集方式2.1.1. Minor GC 次要2.1.2. Major GC 重要2.1.3. Full GC 充分2.2. 新生代收集器2.2.1. Serial收集器2.2.2. ParNew收集器2.2.3. Parallel Scavenge收集器2.3...

2019-12-12 22:24:10 186

原创 3.JVM-对象引用

文章目录1. 引用1.1.强引用(Strong Reference)1.2. 软引用(Soft Reference)1.3. 弱引用(Weak Reference)1.4. 虚引用(Phantom Reference)2. 引用计数算法3. 可行性分析算法对象是不是还在被引用,是java里判断对象是不是存活的依据。如果被引用,那么对象就是存活的,如果没被引用,对象就已经死亡。1. 引用早期(...

2019-12-12 22:23:36 114

原创 2.JVM-对象存储

文章目录1. 概念补充1.1. CAS(Compare-and-Swap)1.2. 自旋锁1.3. 自适应自旋锁1.4. 全局安全点1.5. 偏向锁1.6. 轻量级锁1.7. 重量级锁2. 对象内容2.1. 对象头 Header2.1.1. Mark Word2.1.2. 对象指针2.1.3. 数组长度2.2. 实例数据 Instance Data2.3. 对齐填充 Padding1. 概念补充...

2019-12-12 22:22:57 287

原创 1.JVM-内存

文章目录1. 程序计数器2. 虚拟机栈2.1. 栈帧(StackFrame)2.1.1. 局部变量表2.1.2. 操作数栈2.1.3. 动态连接方法2.1.4. 返回地址3. 本地栈4. 方法区(永久代) PermGen4.1. Class信息4.2. 运行时常量池5. 元数据空间 Metaspace(元空间)6. 堆6.1. 字符串常量池6.2. 新生代6.3. 老年代7. 直接内存(Dire...

2019-12-12 22:22:17 84

原创 0.JVM-概念补充

文章目录1. 静态代码块2. 代码块3. 类构造器方法 clinit4. 实例构造器 init5. 类方法(静态方法)6. 实例方法(非静态方法)7. 静态常量8. 静态变量9. 字面量10. 符号引用11. 直接引用12. 简单名称13. 全限定名14. 描述符1. 静态代码块在静态代码块中仅可以对静态变量进行赋值,在类被加载时就会执行。该部分的代码会编译到init方法中执行static...

2019-12-12 22:21:15 93

原创 14. Docker DockerMachine

文章目录0. 前言1. 安装1.1. Linux1.2. Windows2. 将现有主机纳入管理2.1. 未安装docker的主机2.2. 已安装docker的主机3. 子命令介绍0. 前言Docker Machine 是Docker官方提供的用于管理Docker主机的开源项目,其基本功能包括在指定节点上安装Docker集中管理所有Docker主机主要应用场景是给多台服务器安装修改使...

2019-11-19 10:28:08 131

原创 13. Docker Log

文章目录1. 日志存储2. 日志查看3. 日志限制4. 查看日志大小5. 日志清理1. 日志存储Docker在运行时会生成日志,一般在/var/lib/docker/containers/下,在该目录下会根据容器的ID建立文件夹,每个文件夹下存储每个容器的相关文件。其中包括日志。2. 日志查看docker logs -f CONTAINERID使用该命令可以查看容器的实时日志且会动态更新...

2019-11-19 10:27:25 234

原创 12. Docker Dockerfile

文章目录0. 示例1. 指令1.1. FROM1.2. MAINTAINER1.3. RUN1.3.1. **`RUN `**1.3.2. **`RUN ["executable","param1","param2"]`**1.4. CMD1.4.1.**`CMD ["EXECUTABLE","param1","param2"]`**1.4.2. **`CMD command param1 par...

2019-11-19 10:26:27 84

原创 11. Docker 网络

文章目录1. Docker网络介绍1.1. `bridge` 桥接模式1.2. `none` 无网络模式1.3. `host` 共享主机模式1.4. `overlay` 覆盖网络模式1.5. `macvlan` 主机模式1. Docker网络介绍可以通过参数–netork对docker的网络进行配置,分别为bridge host overlay macvlan none Network pl...

2019-11-19 10:24:21 138

原创 10. Docker 端口

文章目录1. 映射端口1.1. 随机映射端口1.2. 映射所有IP的指定端口1.3. 映射指定IP的指定端口1.4. 映射指定IP的随机端口2. 查看映射3. 容器互联3.1. 容器互联的意义3.2. 容器互联端口映射用到的参数有-P -p-P会随机映射端口-p需要制定端口1. 映射端口映射参数规则 [Ip:]Port:ContainerPort[/Protocol]1.1. 随机映...

2019-11-19 10:23:30 242

原创 9. Docker 数据

文章目录0. 前言1. 数据卷1.1. 数据卷的特性1.2. 在容器内创建一个数据卷1.3. 挂载一个宿主机目录作为数据卷1.4. 挂载一个宿主机文件作为数据卷(不推荐)2. 数据容器2.1. 创建并挂载数据容器2.2. 迁移数据2.2.1. 备份2.2.2. 恢复0. 前言我们在使用docker时有时需要对一些数据进行持久化,但是容器删除之后容器内的数据就会丢失,而由于升级等原因容器又非常又...

2019-11-19 10:22:50 108

原创 8. Docker 容器

文章目录0. 容器配置参数0.1. 运行模式参数0.2. 容器环境和参数0.3. 容器资源限制和安全保护参数0.4. 其他参数1. 新建容器 **create**2. 启动容器 **start**3. 新建并启动容器 **run**4. 查看容器 **ps**5. 停止容器 **stop**6. 杀死容器 **kill**6. 删除容器 **rm**7.导入导出容器7.1. 导出容器 **expo...

2019-11-18 14:18:55 206

原创 7. Docker 镜像

文章目录1. 查看镜像1.1. 列出本地镜像1.2. 查看镜像详细参数1.3. 查看镜像历史2. 搜索镜像3. 下载镜像4. 标记镜像5. 删除镜像5.1. 使用标签删除5.2. 使用ID删除6. 创建镜像6.1. 基于容器创建6.2. 本地模板导入6.3. Dockerfile创建7. 存出和载入镜像7.1. 镜像存出7.2. 镜像载入8. 上传镜像在下方的命令中 如果tag省略那么 tag默...

2019-11-18 14:18:22 381

原创 6. Docker 仓库

文章目录1. 什么是仓库2. 官方注册服务器3. 使用镜像加速器1. 什么是仓库仓库(Repository)很容易和注册服务器(Registry)混淆,在maven里的仓库的概念其实是docker里的注册服务器(Registry).注册服务器就是一个放了很多仓库的一台服务器,而一个个的仓库就是里面的一个个的目录,目录里是各个版本的镜像文件.例如 https://hub.docker.com...

2019-11-18 14:17:39 87

原创 5. Docker 配置

文章目录1. 配置国内镜像源1. 配置国内镜像源sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://noavdvho.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reload...

2019-11-18 14:16:48 57

原创 4. Docker 命令

文章目录1. 镜像相关2. 容器相关2.1. 查看容器2.2. 操作容器2.3. 连接容器2.4. 容器进程操作3. 容器&镜像4. 容器&主机5. 仓库6. 仓库&镜像7. 其他8. commit/save/load/export/import 区别1. 镜像相关images 列出本地镜像tag 修改镜像的标签inspect 获取容器/...

2019-11-18 14:16:14 72

原创 3. Docker 守护及客户端

文章目录1. 守护程序1.1. 守护进程架构1.2. 守护程序命令参数2. 客户端docker是以客户端(client)和守护进程(server)来运行的docker命令本身无法操作容器等操作,其会调用dockerd来完成命令的执行调用支持的协议有:1. 守护程序安装并启动docker之后可以通过ps命令查找docker> ps -ef|grep dockerroot ...

2019-11-18 14:15:03 171

原创 2. Docker 启动

文章目录1. 启动Docker2. 测试Docker3. 查看Docker4. 去除docker命令上的sudo4.1. 创建一个docker组4.2. 添加当前用户到docker组4.3. 重新登陆4.4. 验证docker命令是否可以运行1. 启动Docker$ sudo service docker start2. 测试Docker$ sudo docker run hello-w...

2019-11-18 14:14:29 147

原创 1. Docker 安装

文章目录1. CentOS安装1.1. 系统要求1.2. yum安装1.3. 脚本安装2. Ubuntu 安装2.1. 系统要求2.2. 添加镜像源2.3. apt 安装2.4. 官方脚本安装3. Windows安装1. CentOS安装1.1. 系统要求目前,CentOS 仅发行版本中的内核支持 Docker。CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上Ce...

2019-11-18 14:12:50 134

原创 0. Docker 前言

文章目录1. 简介2. Docker应用场景3. Docker版本3.1. 社区版 Docker Community Edition3.2. 企业版4. 平台支持4.1. 桌面系统4.2. 云系统5. 服务器1. 简介Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、...

2019-11-18 14:10:53 171

原创 大型网站技术架构图书思维导图

2019-11-18 14:06:13 191

原创 1.Kafka 介绍及术语

1. kafka介绍2. kafka术语及定义broker每一个独立的kafka服务器被称为broker集群多个broker组成一个集群,在集群中,一个分区属于一个broker,该broker被称为分区的首领,同时在其他broker中还会有一个或多个该分区的备份,来实现消息冗余,当宕机时,其他broker会接管领导权,变为首领控制器每一个集群中都会有一个broker充当集群控制器的角...

2019-11-11 16:06:48 169

原创 6.RocketMQ 客户端开发进阶

文章目录1. Producer1.1. 构造参数1.2. 方法1.2.1. 同步发送方法1.2.2. 异步发送方法1.2.3. 单向发送方法1.2.4. 批量发送方法1.2.5. 使用事务发送1.2.6. 其他方法1.2.7. 方法分析2. Consumer2.1. PullConsumer 主动拉取2.2. PushConsumer 被动推送1. Producer[外链图片转存失败,源站可能...

2019-11-11 16:04:09 189

空空如也

空空如也

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

TA关注的人

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