自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 双亲委派机制

1、安全性得到保证,因为这种层级关系实际上代表的是一种优先级,也就是所有的类的加载,优先给BootStrap ClassLoaer。再加上每个类加载器都有不同的作用范围,意味着自己写的String就没办法去覆盖核心类库中的类。比如当需要加载一个class文件的时候,首先会这个class的查询和加载委派给父加载器去执行,如果父加载器都无法加载,再尝试自己加载这个class。如果父类加载器已经加载过了,那么子加载器就没必要去加载了。所谓的双亲委派模型,其实就是按照类加载器的层级关系,逐层进行委派。

2023-08-24 21:50:31 21 1

原创 多线程:锁

两个线程竞争同一个资源,抢到资源的线程对资源进行了加锁操作,相当于对资源的状态位进行了变更,于此同时,另外一个线程因为没有抢到资源进入了线程阻塞状态。可以通过自旋锁来避免线程阻塞带来的资源消耗,其本质是加锁失败后,尝试加锁操作,重复上述操作直至获得锁(最大好像是10次),也称之为轻量级锁。锁的粒度过小,频发的加锁,所以进行锁的范围扩大。一个线程抢占到了锁,再释放锁之前,再次竞争同一把锁,不需要阻塞等待,进入重试。这带来了线程状态的切换,线程的阻塞唤醒,上下文的保存,以上会带来资源消耗。

2023-08-19 17:36:53 25

原创 Redis持久化

和AOF相比,它记录的是某一时刻的数据。指定时间间隔内,指定次数的写操作,将内存中的数据集快照写入磁盘,是redis的默认持久化机制,执行完,会再指定目录下生成dumo.rdb文件,重启时,通过加载该文件恢复数据。1、AOF(append only file) 持久化,采用日志的形式来记录每个写操作,追加到AOF文件的末尾,执行完命令后才记录日志。默认情况下不开启AOF,重启时执行AOF中的命令来恢复数据。优点:与AOF相比,恢复大数据集的时候会更快,它适合大规模的数据恢复场景,如备份,全量复制等。

2023-08-18 19:33:33 16

原创 CAS如何解决ABA问题

线程1进行CAS操作,获取预估值为"A",在线程1进行“比较交换”前,线程2进入并将变量的值由"A"改为“B”,然后又重新改回到"A"并退出,此时对于线程来说,预估值与实际值都为"A",可以进行"比较交换"操作,但是实际上,"A"被修改过。当一个线程要对一个变量进行CAS操作时,会先进行变量值的比对,即要修改的变量值是否与预期的变量值是否一致,一致代表该变量当前没有被其他线程使用,可以进行修改,否则线程会进入自旋锁状态,重复以上操作。首先涉及到三个参数:要修改的变量、预期的变量值、修改后的变量值。

2023-08-18 11:14:27 107

空空如也

空空如也

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

TA关注的人

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