
并发编程
我在路上....
这个作者很懒,什么都没留下…
展开
-
ThreadLocal线程隔离
ThreadLocal 一个例子 public class ThreadLocalTest { private static ThreadLocal<Long> threadLocal = new ThreadLocal<Long>() { @Override protected Long initialValue() { ...原创 2019-11-26 11:27:12 · 286 阅读 · 0 评论 -
hashmap 1.7死循环问题
经常听人说起JDK1.7 HashMap死循环问题,一直没看过,今天试着看一下 HashMap数据结构主要有一个hash table(就一数组)和Node(每一个key-value组成一个Node) hash表是数组,对于数组来说,读取任意位置的元素都是O(1),因为数组的首位置知道,读取任意下标的元素,只是偏移指定的位数,就是俗称的随机存取 如果hash碰撞,同一个hash值的Node会采用拉链...原创 2019-10-18 01:09:37 · 1235 阅读 · 0 评论 -
ReentrantReadWriteLock 读写锁学习
ReentrantReadWriteLock读写锁学习–未完 JDK1.8读写锁包含了两个锁,读锁readerLock,写锁writerLock 读锁和写锁的的lock()都使用了同一个同步器Sync,唯一区别的是一个是共享锁一个是排它锁 //读锁 public void lock() { sync.acquireShared(1); } //写锁 public void lock() {...原创 2019-06-28 14:05:00 · 136 阅读 · 0 评论 -
单例,单例!
单例模式 单例模式的写法 饿汉式 懒汉模式(延时加载) 双重检查锁 枚举 内部类 饿汉式 饿汉式是绝对线程安全的,但是会导致一个问题,不管用不用都会创建对象,多个无用的单例对象,造成不必要的内存浪费,拖慢系统的启动过程 // 饿汉式两种写法 class Hungry { private static final Hungry instance = new Hungry(); ...原创 2019-08-05 12:43:13 · 151 阅读 · 0 评论