多线程
文章平均质量分 84
jinfeiteng2008
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ReentrantLock ,Synchronized对比
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在转载 2016-12-01 14:47:19 · 287 阅读 · 0 评论 -
ConcurrentHashMap深入分析
原文:http://blog.youkuaiyun.com/vernonzheng/article/details/8241213 一、Map体系 Hashtable是JDK 5之前Map唯一线程安全的内置实现(Collections.synchronizedMap不算)。Hashtable继承的是Dictionary(Hashtable是其唯一公开的子类),并不继承Abstrac转载 2016-12-01 15:14:34 · 329 阅读 · 0 评论 -
JAVA并发编程学习笔记之CAS操作
原文:http://m.blog.youkuaiyun.com/article/details?id=7537960 CAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。 CAS通过调用JNI的代码实现的。JNI:Java Native Interface为JAVA本地调用,转载 2016-12-01 15:47:52 · 292 阅读 · 0 评论 -
ReentrantReadWriteLock深入分析
原文:http://blog.youkuaiyun.com/vernonzheng/article/details/8297230 一、ReentrantReadWriteLock与ReentrantLock 说到ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。 Reen转载 2016-12-01 16:36:53 · 315 阅读 · 0 评论 -
volatile深入分析( 什么时候使用volatile)
原文:http://blog.youkuaiyun.com/vernonzheng/article/details/8201744 volatile 变量提供了线程的可见性,并不能保证线程安全性和原子性。 什么是线程的可见性: 锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁转载 2016-12-01 17:16:28 · 12763 阅读 · 1 评论 -
Condition
Lock对应Synchronized,使用之前都要先获取锁 Object Condition 休眠 wait await 唤醒个线程 notify signal 唤醒所有线程 notifyAll signalAll Condition它更强大的地转载 2016-12-01 17:30:53 · 278 阅读 · 0 评论 -
CountDownLatch、CyclicBarrier和Semaphore
1)CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同: CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行; 而CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行; 另外,CountDownLatch是不能够重用的,而Cyclic转载 2016-12-01 17:57:26 · 267 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。 注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同一代转载 2016-12-01 18:09:05 · 213 阅读 · 0 评论 -
Atomic:原子变量与原子类
一、何谓Atomic? Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位。计算机中的Atomic是指不能分割成若干部分的意思。如果一段代码被认为是Atomic,则表示这段代码在执行过程中,是不能被中断的。通常来说,原子指令由硬件提供,供软件来实现原子方法(某个线程进入该方法后,就不会被中断,直到其执行完成) 在x86 平台上,CPU提供了在指令执行期转载 2016-12-01 15:55:36 · 432 阅读 · 0 评论 -
同步器基础:AQS框架深入分析
原文:http://blog.youkuaiyun.com/vernonzheng/article/details/8275624 一、什么是同步器 多线程并发的执行,之间通过某种 共享 状态来同步,只有当状态满足 xxxx 条件,才能触发线程执行 xxxx 。 这个共同的语义可以称之为同步器。可以认为以上所有的锁机制都可以基于同步器定制来实现的。 而juc(Java.util转载 2016-12-01 16:02:42 · 430 阅读 · 0 评论
分享