自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 安全点与安全区域

大体实现思想就是当垃圾收集需要中断线程的时候,不直接对线程操作,仅仅简单的设置一个标志位,各个线程执行过程会不停的主动去轮询这个标志,一旦发现中断标志为真时就自己在最近的安全点上主动中断挂起。安全点就是指代码种的一些特定位置,当线程运行到这些位置时它的状态是确定的,这样JVM就可以安全进行一些操作,比如GC等,所以GC不是想什么时候执行就立即触发,是需要等待所有线程运行到安全点后才能触发。如果一个线程处于Sleep或中断状态,它就不能响应JVM的中断请求,再运行到Safe Point上。

2023-05-05 11:31:27 197

原创 Java堆外内存

上面bytebuffer堆内存对象存的是byte[]数组,而堆外内存对象存的是内存地址,因为堆外内存是申请操作系统内存,也就是C语言申请的内存,底层调用的本地方法(C语言的函数),内存地址引用指向该对象,读写操作都是C语言实现的。堆外内存也叫直接内存,指非JVM管理的内存,在操作系统内存里申请的。DirectByteBuffer 内存回收。

2023-05-03 10:45:04 313

原创 不可重入锁-StampedLock

什么叫不可重入:同一个线程获取到锁时,不能执行相同锁的方法块。JDK1.8:stamp : 英译“票据”,票据锁与ReadWritelock的区别:读写锁:只有读和读操作是共享,其它读和写操作都是互斥票据锁:支持乐观读写。独占锁只有当前没有线程持有读锁或者写锁时才能获取到该锁。方法writeLock()返回一个可用于unlockWrite(long)释放锁的方法的戳记。tryWriteLock()提供不计时和定时的版本。读。共享锁。

2023-04-29 11:11:44 234

原创 splunk安装和使用

启动后,会让你确认许可证和设置admin登录密码,完成返回访问地址:http:127.0.0.1:8000 (一般)1.官网注册下载版本(优先低版本,空间小)意思是要你设置授权证书。

2023-04-28 15:57:51 617

原创 可重入锁-Reentrant

(2)NonfairSync实现了Sync,主要用于非公平锁的获取;什么叫可重入:线程可以进入任何一个它已经拥有的锁所同步着的代码块。Reentrant = Re + entrant : 可重复进入。(3)FairSync实现了Sync,主要用于公平锁的获取。(1)抽象类Sync实现了AQS的部分方法;可重锁作用:防止死锁。

2023-04-28 15:52:14 149

原创 ES6-Promise

/ 1.缩写: return 'a' 等价于 return Promise.resolve('a') 执行下面的then函数。// 2. return Promise.reject('a') 执行下面的catch函数。//第一个异步请求结果。//第二个异步请求结果。//输出:resolve:resolve。console.log('结果1');console.log('结果2');//输出:reject:reject。将网络请求代码和异步处理代码分离。

2023-04-28 15:48:14 96

原创 Java虚拟机-双亲委派模型

它负责加载用户类路径上所指定的类库,开发者可以直接使用这个类加载器,如果应用程序中没有自定义过自己的类加载器,一般情况下这个就是程序中默认的类加载器。启动类加载器无法被Java程序直接使用。双亲委派模型的式作过程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完全这个加载请求时,子加载器才会尝试自己去加载。

2023-04-28 15:46:40 72

原创 Springboot装配和注入(最全)及使用场景举例

Springboot装配和注入及使用场景举例,带你真正玩转Spring.......装配:创建bean,并加入IOC容器。注入:创建bean之间的依赖关系。

2023-04-28 15:24:25 1490 1

原创 Java中的引用及作用分析

若key是强引用,即使t1=null,但key还是指向ThreadLocal对象,所以会有内存泄漏,而使用弱引用的话,key会随t1的回收而被回收。当监测到虚引用被垃圾回收器回收后,可以作出相应的处理去回收堆外内存。但还是有内存泄漏的情况,如果key被回收后为null,则导致整个value再也无法被访问到,因此依然存在内存泄漏。一般new的对象就是强引用,只有在没有引用时才会被垃圾回收掉。随时被垃圾回收器回收,并且虚引用访问不到被引用的对象。堆内存空间不足时,才会被回收。只要发生gc,就会被回收。

2023-04-28 15:04:13 209

原创 因Redis分布式锁造成的S1级重大事故,整个团队都没年终奖了。。。

刚好这时,线程B过来了,它就能抢到锁了,开始执行它的业务逻辑,恰好这时,线程A执行完逻辑,去释放锁的时候,它就把B的锁给释放掉了。spring的Aop,会在updateDB方法之前开启事务,之后再加锁,当锁住的代码执行完成后,再提交事务,因此锁住的代码块执行是在事务之内执行的,可以推断在代码块执行完时,事务还未提交,锁已经被释放,此时其他线程拿到锁之后进行锁住的代码块,读取的库存数据不是最新的。所谓的不可重入,就是当前线程执行某个方法已经获取了该锁,那么在方法中尝试再次获取锁时,会阻塞,不可以再次获得锁。

2023-04-28 14:47:42 102

空空如也

空空如也

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

TA关注的人

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