自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么是自旋锁

什么是自旋 “自旋”可以理解为“自我旋转”,这里的“旋转”指“循环”,比如 while 循环或者 for 循环。“自旋”就是自己在这里不停地循环,直到目标达成。而不像普通的锁那样,如果获取不到锁就进入阻塞,也就是说,它会不停地再次地尝试获取锁,如果失败就再次尝试,直到成功为止 非自旋锁,非自旋锁和自旋锁是完全不一样的,如果它发现此时获取不到锁,它就把自己的线程切换状态,让线程休眠,然后 CPU 就可以在这段时间去做很多其他的事情,直到之前持有这把锁的线程释放了锁,于是 CPU 再把之前的线程恢复回来,让

2021-10-22 16:41:29 488

原创 双亲委派机制

你得先知道 Java是运行在Java的虚拟机(JVM)中的,但是它是如何运行在JVM中了呢?我们在IDE中编写的Java源代码被编译器编译成.class的字节码文件。然后由我们得ClassLoader负责将这些class文件给加载到JVM中去执行。 JVM中提供了三层的ClassLoader: Bootstrap classLoader:主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。 ExtClassLoader:主要...

2021-10-01 13:36:30 76

原创 BindingException解决方法

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。 Mapper接口开发需要遵循以下规范: 1.Mapper.xml文件中的namespace与mapper接口的类路径相同。 2.Mapper接口方法名和Mapper.xml中定义的每个stateme

2021-09-26 21:16:16 380

原创 经典排序之快速排序

1,基本思想: 快速排序(Quicksort)是对冒泡排序算法的一种改进。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 2,实现步骤 先寻找出一个基准值,理论上基准值可以是待排序数中的任意一个值,此处我们取基准值采取的方法是寻找数组最中间的数充当基准值 创建两个索引 左索引:初始值为待排序数组的最左端,不断右移,直至找到大于或

2021-09-17 09:54:15 87

原创 reentrantlock,synchronized区别 、介绍

synchronized在jdk1.6之前是一个重量级(cpu要从内核态切换到用户态)的锁,线程交替执行时,解决线程安全问题,需要调用操作系统中的函数;jdk1.7之后就尽量使得同步的处理在jvm中解决。 reentrantlock就是围绕着自旋,cas,part-unpart实现的, 加锁过程,根据是否是公平锁调用不同的方法去加锁,先判断锁是不是自由状态,判断自己需不需要排队,不需要排队就调用cas尝试加锁,加锁成功就将当前线程设置为持有这把锁的线程,返回true,后面都是正常返回,就拿到了锁,继续执

2021-09-15 10:32:50 222

空空如也

空空如也

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

TA关注的人

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