1. MySQL逻辑架构 1.1 连接管理与安全性 每个客户端连接都会在服务器进程中拥有一个线程, 这个连接的查询只会在这个单独的线程中执行, MySQL服务维护一个线程池 ...
本文将介绍Java并发包中与锁相关的API和组件, 以及这些API和组件的使用方式和实现细节 1. Lock接口 锁是用来控制多个线程访问共享资源的方式, 像独占锁, 读写锁...
1. 线程简介 1.1 什么是线程 线程是现代操作系统能够进行调度和运算的基本单位 在一个进程中可以创建多个线程, 这些线程都有各自的计数器, 堆栈和局部变量等属性, 并且能...
1. Java内存模型基础 1.1 并发编程的两个关键问题 线程之间如何通信, 通信是指线程之间如何交换信息, 一般有两种方式共享内存, 通过读写内存公共状态进行隐式通信, ...
1. volatile的应用 volatile是轻量级synchronized, 保证了共享变量的可见性, 可见性的意思当一个线程修改一个共享变量时, 其他线程能读取到这个修...
1. 上下文切换 即使单核CPU也支持多线程运行代码, CPU会给每个线程分配CPU时间片, 时间片一般是几十毫秒, 然后CPU通过时间片分配算法不停地切换线程, 循环执行任...
对的呢 springboot2.1.3
Spring源码8. prepareContext()准备应用上下文上篇回顾 上一篇SpringBootExceptionReporter异常上报中分析了springboot如何处理启动过程中的异常 目录 1. 准备容器prepareCont...
目录 1. 注册BeanDefinition 2. 预初始化单例Bean 2.1 AbstractBeanFactory获取或者创建Bean实例 2.2 AbstractAu...
目录 1. ConfigurationClassPostProcessor扫描和注册BeanDefinition 2. 解析配置类 ConfigurationClassPar...
目录 1. 初始化SpringApplication实例 2. 发布启动事件ApplicationStartingEvent 3. 封装命令行参数DefaultApplica...
上篇回顾 在上一篇refreshContext()刷新应用上下文中, 我们主要分析了spring容器的刷新 首先更新刷新状态 然后处理beanFactory的后置处理器, 用...
上篇回顾 上一篇prepareContext()准备应用上下文中分析了spring容器的准备, 共计执行了如下8步: 统一了ApplicationContext和Applic...
上篇回顾 上一篇SpringBootExceptionReporter异常上报中分析了springboot如何处理启动过程中的异常 目录 1. 准备容器prepareCont...
上篇回顾 createApplicationContext()创建应用上下文 获取并打印Spring启动过程中的异常信息 FailureAnalyzers类源码 下一篇 pr...
上篇回顾 上一篇printBanner()打印Banner中非了springboot如何打印Banner 目录 1. 创建应用上下文 2. DefaultResourceLo...
上篇回顾 上一篇prepareEnvironment()准备环境主要分析了StandardServletEnvironment的创建, 以及系统属性, 环境变量, 配置文件等...
上篇回顾 上一篇封装命令行参数DefaultApplicationArguments主要作用是处理启动类main函数的参数, 将其封装为一个DefaultApplicatio...
上篇回顾 上一篇发布启动事件ApplicationStartingEvent, 我们分析springboot发布了启动事件, 其执行步骤如下 首先调用getRunListen...
一. 接口与抽象类 1.共同点 都是上层抽象,为了继承和实现而存在的 都不能被实例化(可以使用匿名内部类实例化),但是可以声明一个引用 都可以包含抽象方法 2. 接口 2.1...