java并发包
一刀平
java架构
展开
-
(转)锁机制 ReetrankLock 与 synchronized 比较
底层原理实现的不同 互斥同步最主要的问题就是进行线程阻塞和唤醒所带来的性能问题,因而这种同步又称为阻塞同步,它属于一种悲观的并发策略,即线程获得的是独占锁。独占锁意味着其他线程只能依靠阻塞来等待线程释放锁。而在 CPU 转换线程阻塞时会引起线程上下文切换,当有很多线程竞争锁的时候,会引起 CPU 频繁的上下文切换导致效率很低。synchronized 采用的便是这种并发策略。转载 2016-12-06 17:30:37 · 3428 阅读 · 0 评论 -
java cas原理
1:CAS概念及原理 CAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。 CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。 有啥用处? 对于常用转载 2016-12-03 23:03:59 · 515 阅读 · 0 评论 -
notify 通知的遗漏
notify 通知的遗漏很容易理解,即 threadA 还没开始 wait 的时候,threadB 已经 notify 了,这样,threadB 通知是没有任何响应的,当 threadB 退出 synchronized 代码块后,threadA 再开始 wait,便会一直阻塞等待,直到被别的线程打断。 遗漏通知的代码 下面给出一段代码演示通知是如何遗漏的,如下: public cla转载 2016-12-07 11:15:48 · 350 阅读 · 0 评论 -
ConcurrentHashMap 实现机制
今天我们将深入剖析一个比HashTable性能更优的线程安全的Map类,它就是ConcurrentHashMap,本文基于Java 7的源码做剖析。 ConcurrentHashMap的目的 多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。虽然已经有一个线程安全的HashTable,但是HashTable转载 2016-12-07 20:33:27 · 451 阅读 · 0 评论