- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 dubbo源码双重检查锁原理分析
dubbo源码中多处用到双重检查锁,比如ExtensionLoader#getExtensionClasses以上源码中,cachedClasses为多个线程共享资源。比如多个线程调用getExtensionClasses()方法的时候,假设X,Y线程都判断第558行classes==null,都进入了559行。接着X线程抢先拿到锁,从cachedClasses获取值,发现为空,为其赋值,...
2019-08-28 13:58:58 312
原创 线程安全问题和解决方案
什么是线程安全当多个线程对同一个资源进行访问的时候,可能出现非原子性操作,造成数据出现意想不到的结果。多线程抢夺资源案例代码package com.shopping.thread;import java.util.concurrent.CountDownLatch;public class ShareData { private int count; public voi...
2019-08-15 17:48:13 142
原创 Integer a=1,b=1,c=128,d=128 问a==b,c==d结果分别是什么?
1. ==和equals的区别==表示内存地址是否相等。equals表示两个对象的内容是否相等。2. Integer a=1,b=1,c=128,d=128底层实现整型值赋给一个Integer对象,出现了自动包装的效果,自动将调用Integer.valueOf方法public static Integer valueOf(int i) { assert IntegerCac...
2019-08-15 11:18:27 1998 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人