摘要:
什么是 CAS CAS(Compare And Swap,比较并交换),通常指的是这样一种原子操作:针对一个变量,首先比较它的内存值与某个期望值是否相同,如果相同,就给它赋一个新值。 CAS 的逻辑用伪代码描述如下: if (value == expectedValue) { value = new
阅读全文
posted @ 2022-03-09 00:04
路仁甲
阅读(173)
推荐(0)
摘要:
线程基础知识 线程和进程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中 还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 。 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程
阅读全文
posted @ 2022-03-09 00:02
路仁甲
阅读(57)
推荐(0)
摘要:
线程池与线程对比: 线程方式 import java.util.ArrayList; import java.util.List; import java.util.Random; /*** * 使用线程的方式去执行程序 */ public class ThreadTest { public sta
阅读全文
posted @ 2022-03-08 23:54
路仁甲
阅读(60)
推荐(0)
摘要:
并发和并行 目标都是最大化CPU的使用率 并行(parallel): 指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 并发(concurrency): 指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时
阅读全文
posted @ 2022-03-08 23:51
路仁甲
阅读(159)
推荐(0)
摘要:
CPU高速缓存(Cache Memory) CPU高速缓存 CPU缓存即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据
阅读全文
posted @ 2022-03-08 23:47
路仁甲
阅读(477)
推荐(0)
摘要:
SpringBoot启动流程: 调用SpringApplication.run启动springboot应用 public static void main(String[] args) { SpringApplication.run(ServiceApplication.class, args);
阅读全文
posted @ 2022-03-08 23:40
路仁甲
阅读(109)
推荐(0)
摘要:
Springboot自动装配原理详解 传统配置 1)传统ssm整合redis的时候 需要在xml的配置文件中 进行大量的配置Bean 第一步:加入依赖 <dependency> <groupId>org.springframework.data</groupId> <artifactId>sprin
阅读全文
posted @ 2022-03-08 23:33
路仁甲
阅读(150)
推荐(0)
摘要:
SpringMVC之请求处理流程 我们知道DispatcherServlet就是一个HttpServlet,而HttpServlet的请求就从doGet/doPost开始 DispatcherServlet本身没有实现doGet/doPost,而由他的父类FrameworkServlet实现,源码如
阅读全文
posted @ 2022-03-08 23:31
路仁甲
阅读(334)
推荐(0)
摘要:
Servlet项目启动执行顺序 由前面的回顾内容可知,Servlet项目启动执行顺序如下 ServletContainerInitializer.onStartup(Set<Class<?>> c, ServletContext ctx) ServletContextListener.context
阅读全文
posted @ 2022-03-08 23:29
路仁甲
阅读(159)
推荐(0)
摘要:
手写简易SpringMVC 思路分析: 1.启动tomcat 2.spi机制加载spring容器,扫描包,生成bean,并且将注解解析到Map<String,RequestMappingInfo> map中 3.get/post请求时,. 根据url获取对应的RequestMappingInfo对象
阅读全文
posted @ 2022-03-08 23:26
路仁甲
阅读(42)
推荐(0)