在使用Idea的时候,它的注释模板很简单,不够详细;所有大多数开发者都想设置一个比较详细的注释模板,我现在把我了解的创建类注释模板和方法注释模板的操作记录下来,分享给大家...

在使用Idea的时候,它的注释模板很简单,不够详细;所有大多数开发者都想设置一个比较详细的注释模板,我现在把我了解的创建类注释模板和方法注释模板的操作记录下来,分享给大家...
LongAccumulator类原理探究 LongAdder类时LongAccumulator的一个特例,LongAccumulator比LongAdder的功能更强大。例如...
LongAdder代码分析 为了解决高并发下多线程对一个变量CAS争夺失败后进行自旋而造成的降低并发性能的问题,LongAdder在内部维护多个Cell元素(一个动态的Cel...
LongAdder介绍 之前有篇文章讲过AtomicLong通过CAS提供了非阻塞的原子性操作,相比使用阻塞算法的同步器来说它的性能已经很好了,但是JDK开发组并不满足于此。...
ThreadLocal不支持继承性 首先看一个例子 输出结果如下: 通过以上例子可以看到,同一个ThreadLocal变量在父线程中设置值后,在子线程是取不到的。根据上节的介...
ThreadLocal实现原理 下面是ThreadLocal相关类的类结构图,如图: 由该图可知,Thread类中有一个threadLocals和一个inheritableT...
出现背景: 多线程访问同一个共享变量特别容易出现并发问题,特别是在多个线程需要对一个共享变量进行写入时,为了保证线程安全,一般使用者在访问共享变量时进行适当的同步。如图所示 ...
Java中的Object类是所有类的父类,鉴于继承机制,Java把所有的类都需的方法放在了Object类里面,其中就包含要说的通知与等待。 1.wait()方法 当一个线程调...
什么是线程虚假唤醒 在不同的语言,甚至不同的操作系统上,条件锁都会产生虚假唤醒现象。所有语言的条件锁库都推荐用户把wait()放进循环里,参见为什么条件锁会产生虚假唤醒现象(...
CountDownLatch作用阻塞一个或多个线程等待其他线程完成操作。 定义初始化的时候,需要传入一个正数来初始化计数器(0也可以,但这样定义没有实际意义)。有两个方法co...
Intellij IDEA 又过期了? 试试这个 "狼哥,面试又跪了,碰到了知识盲区""哪个?""一面还可以,二面面试官问我零拷贝的原理,懵逼了...这块内容没去研究过""哦...
这篇看一下JUC包提供的读写锁(共享锁/独占锁)。 之前我们都知道在一个变量被读或者写数据的时候每次只有一个线程可以执行,那么今天我们来看一下读写锁,读写两不误ReadWri...
前言 在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是Linux API提供的I/O复用...
在JAVA中我们知道有很多加锁的方式,比如常见的 通过synchronized关键字,还有Lock,还有之前说原子CAS操作时有看到过的死循环方式的自旋锁。 借此来说一下锁的...
看以下代码以及执行结果: 结果在判断c是否与d相等时 出现了false。 这是因为Integer类源码中有一个IntegerCache,这一个私有的内部类。这个类缓存了-12...
上篇文章有说过 多线程环境下 进行变量属性 自增操作时会造成线程不安全的情况,也有说到 volatile 关键字,最后也不能保证线程安全,因为多线程情况下 他不能保证原子性,...
volatile关键字java虚拟机提供的轻量级同步机制 保证可见性 禁止指令重排序 不保证原子性 可见性: 什么叫可见性呢,首先要说一下JAVA虚拟机内存,JAVA虚拟机...