摘要: 重入锁是对synchronize的增强,可以代替synchronize。 重入锁使用java.util.concurrent.locks.ReentrantLock来实现。下面是一个简单的例子,相对于synchronize来说,重入锁更加细致,也更加灵活。 之所以叫重入锁,是因为对同一线程来说,这种 阅读全文
posted @ 2018-07-27 15:59 蒋曾 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 首先介绍JMM(Java内存模型):JMM是一种保证多线程之间有效的正确的协同工作的机制。 JMM有三个关键技术:原子性,可见性,有序性 (1)原子性:原子性是指一个操作是不可中断的,即一个操作开始,就不会被打扰。 (2)可见性:可见性是指当一个线程修改了共享变量的值,其他线程能不能知道。在一个操作 阅读全文
posted @ 2018-07-27 15:25 蒋曾 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 首先看储存数据结构 HashMap:transient Entry[] table; ConcurrentHashMap:final Segment<K,V>[] segments; 这里的每个Segment就相当于一个小的HashMap,而且因为是final修饰的,只能赋值一次,默认初始容量16。 阅读全文
posted @ 2018-07-27 10:32 蒋曾 阅读(156) 评论(0) 推荐(0) 编辑