java
小青蛙学Java
不知海之辽阔,但知天之湛蓝
展开
-
java中锁不可描述的事
java实现锁的三种方式 volatile关键字 volatile用于修饰的变量,属于JUC层面的锁,在多线程访问的情况下,不会出现脏读,所有读请求都能读到更新后的数据。它是通过读写屏障去实现锁的效果,就是我更新完数据,会强制去更新主缓存和各级缓存的数据。 如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。 public static volatile int i = 1; synchronize关键字 这个同原创 2020-10-05 21:04:47 · 119 阅读 · 0 评论 -
关于synchronized不可描述的事情
1.synchronized的实现方式和影响效果 静态方法锁 使用这种锁,不同实例会共用同一个锁,即不同实例之间调用该方法还是需要竞争锁。 public static synchronized void demo1() { System.out.println("静态方法锁 : demo1"); try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e)原创 2020-10-04 02:10:06 · 1463 阅读 · 0 评论 -
关于Spring Bean作用域的不可描述的事情
参考资料: https://blog.csdn.net/fuzhongmin05/article/details/73389779 五个作用域 类别 说明 优点 缺点 singleton 单例,即SpringIOC容器只有一个实例,spring的默认作用域 占用空间小 永远存活,如果有静态属性的多线程操作就会出现线程冲突的问题 prototype 原型,即SpringIOC容器每次根据应用上下文每次调用时去创建一个新的实例 每个Bean独立,不存在多线程的问题 这种方式创建的Bean原创 2020-09-27 14:25:36 · 103 阅读 · 0 评论