JUC
Vince_Wang1
What hurts more? The pain of hard-working or the pain of regret?
展开
-
HashMap源码学习
带着几个问题:众所周知在jdk 1.8 hashmap的数据结构变成了链表+数组+红黑树,那么相比于原本的链表和数组的结构,优点在哪?哈希碰撞如何解决?扩容时机和扩容原理?ConcurrentHashMap是如何实现线程安全的?直接看代码吧几个参数:static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //默认初始容...原创 2020-03-05 14:48:37 · 750 阅读 · 0 评论 -
volatile的应用和原理初探
volatile 也就是JVM提供的轻量级的同步机制有如下三个特性:1、保证可见性可见性的意思是当一个线程 修改一个共享变量时,另外一个线程能读到这个修改的值volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的 汇编指令来查看对volatile进行写操作时,CPU会做什么事情。Java代码如下。instance = new Singleton()...原创 2020-02-21 22:00:38 · 185 阅读 · 0 评论 -
生产者消费者问题
1.使用传统synchronizedpublic class pc { public static void main(String[] args) { Data data=new Data(); new Thread(()->{ for (int i = 0; i < 10; i++) { ...原创 2020-02-20 13:30:33 · 184 阅读 · 0 评论