面试
文章平均质量分 74
耿向前
这个作者很懒,什么都没留下…
展开
-
分布式锁的使用:Redisson(redissonClient);以及核心代码分析
所有竞争这把锁的线程都要判断在这个key下有没有自己线程的字段,如果没有则不能获得锁,如果有,则相当于重入,字段值加1(次数)重点在下图,主要实现,然后执行里面的lua脚本语言,返回 数据,就算就算加上锁了(广播0表示资源可用)这里用的数据结构是hash,hash的结构是: key 字段1 值1 字段2 值2。用在锁这个场景下,key就表示锁的名称,也可以理解为临界资源,字段就表示当前获得锁的线程。初始化RedissonLock对象 ,并且根据入参名字相当于创建了一个全局的key的锁。...原创 2022-08-08 10:56:14 · 1701 阅读 · 1 评论 -
如何更优雅的使用多线程-------@Async
@Async注解使用条件: @Async注解一般用在类的方法上,如果用在类上,那么这个类所有的方法都是异步执行的; 所使用的@Async注解方法的类对象应该是Spring容器管理的bean对象; 调用异步方法类上需要配置上注解@EnableAsync 快速使用 SpringBoot应用中需要添加@EnableAsync注解,来开启异步调用,一般还会配置一个线程池,异步的方法交给特定的线程池完成,如下: @Configuration @EnableAsync public class AsyncConfigu原创 2021-06-24 22:55:48 · 474 阅读 · 0 评论 -
Nacos原理简介
简单介绍一下Nacos 1.什么是Nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 是Spring Cloud A 中的服务注册发现组件,类似于Consul、Eureka,同时它又提供了分布式配置中心的功能,这点和Consul的config类似,支持热加载 2.Nacos原理 Nacos注册中心分为server与client,server采用Java编写,为client提供注册发现服务与配置服务原创 2021-05-30 15:52:28 · 3131 阅读 · 0 评论 -
Spring事务方法的相互引用问题
起因: 一个方法(A)是查询数据与验证组装数据,另外一个方法(B)更新这条数据所对应的表(执行的时候是方法A中调用方法B); 由于这个数据是循环更新,所以我想的是,一条数据更新失败直接回滚此条数据就是,不会影响其他数据,其他的照常更新,所以我就在方法B上加了事务,方法A没有加; 以为很完美,自测一下正常,ok通过,再测试一下报错情况,是否回滚,一测,没回滚,懵圈儿? 以为代码写错了,改了几处地方,再测了几次,均没回滚。这下是真难受了。 下面开始一步步分析解决问题: 首先我们来看下spring事务的传播机制及原创 2021-05-21 18:06:58 · 474 阅读 · 0 评论 -
关于JVM的常识,你一定要了解
1.什么是垃圾回收机制 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制。(jdk自动回收,或者手动System.gc()) 2.什么时候进行垃圾回收 ①会在cpu空闲的时候自动进行回收 ②在堆内存存储满了之后 ③主动调用System.gc()后尝试进行回收 补充:System.gc()用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间。它将尝试释放.原创 2021-04-15 11:13:47 · 102 阅读 · 0 评论