volatile 介绍
volatile是一个特征修饰符,被volatile修饰的变量能够保证每个线程能够获取该变量的最新值,从而避免出现数据脏读的现象
volatile的两大特性
1、可见性:立即刷新回主内存+失效处理。
2、有序性:禁止指令重排,存在数据依赖关系的禁止重排。
...
2年前 (2023-02-04) 7557℃
1喜欢
JMM介绍
JMM是指JAVA内存模型,JVM是java虚拟机的意思,两者是截然不同的两个东西,他们两个之间的关系类似于雷锋和雷锋塔的关系
JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定或规范,通过...
2年前 (2023-02-04) 1301℃
0喜欢
LockSupport是什么
Lock Support从字面意思直接翻译过来是锁的支撑类,是一个改进类。下面就看一下这个技术为什么会出现,解决了那些老技术不方便不灵活的问题。
官方解释:用于创建锁和其他同步类的基本线程阻塞原语。
核心就是park()和unpark()方法
pa...
2年前 (2023-02-03) 1055℃
0喜欢
SPI 介绍
在进行应用程序开发的时候,经常有这样一类需求,在不修改源代码的情况下,动态的为我们的程序提供一系列特性,比如我们可以为每一个方法在执行前,执行后动态的运算它的执行时间;或者收集jvm、内存、cpu的运行指标等等,像这些灵活扩展的功能该如何实现呢?在springboo...
2年前 (2023-01-29) 939℃
1喜欢
LRU 算法简介
LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰
LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时...
2年前 (2023-01-15) 6723℃
2喜欢
什么是中断机制
首先:
一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。
所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。
其次:
在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,...
2年前 (2022-12-09) 3382℃
5喜欢
Future 介绍
Future 是Java5新加的一个接口,它提供了一种异步并行计算的功能。
如果主线程需要执行一个很耗时的计算任务,我们就可以通过future把这个任务放到异步线程中执行。主线程继续处理其他任务或者先行结束,在通过Future获取计算结果。
一句话:Futur...
2年前 (2022-12-07) 1233℃
0喜欢
介绍
SpringBoot拦截器,它主要用于拦截用户的请求并做相应的处理,通常应用在权限验证、记录请求信息的日志、判断用户是否登录等功能上。
示例场景说明
示例场景:在SpringBoot中自定义一个拦截器,判断用户的请求中是否携带了token,要是用户请求携带了token则让用...
2年前 (2022-11-20) 1088℃
4喜欢
说明
本文档根据B站UP主分享内容整理,视频原版连接:【IT老齐140】非常实用!Spring AOP与自定义注解实现共性需求
介绍
Spring AOP可以帮助我们Java在不修改源代码的前提下实现功能增强,其底层实现基于Java动态代理 或者CGLIB。
以往我们使⽤exec...
2年前 (2022-11-20) 940℃
0喜欢
介绍
在java.util.concurrent中,提供了工具类Executors(调度器)对象来创建线程池,可创建的线程池有四种:
1、CachedThreadPool:可缓存线程池,如果数据请求过多,它会不断创建新的线程,并且它还可以灵活回收空闲的线程
2、FixedThre...
2年前 (2022-11-19) 1433℃
1喜欢