chenssy
致力打造Java精品博客站点

JAVA

第3页

【Java并发编程实战】—– AQS(一):简介

chenssy阅读(1148)评论(0)

在前面博客中,LZ讲到了ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch,他们都有各自获取锁的方法,同时相对于Java的内置锁,他们具有明显的优势:花最小的空间开销创...

【Java并发编程实战】—–“J.U.C”:CLH队列锁

chenssy阅读(828)评论(3)

在前面介绍的几篇博客中总是提到CLH队列,在AQS中CLH队列是维护一组线程的严格按照FIFO的队列。他能够确保无饥饿,严格的先来先服务的公平性。下图是CLH队列节点的示意图: 在CLH队列的节点QNode中包含有一个locked的字段,该...

【Java并发编程实战】—–“J.U.C”:CAS操作

chenssy阅读(573)评论(4)

CAS,即Compare and Swap,中文翻译为“比较并交换”。 对于JUC包中,CAS理论是实现整个java并发包的基石。从整体来看,concurrent包的实现示意图如下: i++是一个非常经典的操作,它几乎充斥着我们每个人编写的...

【Java并发编程实战】—–“J.U.C”:Exchanger

chenssy阅读(400)评论(0)

前面介绍了三个同步辅助类:CyclicBarrier、Barrier、Phaser,这篇博客介绍最后一个:Exchanger。JDK API是这样介绍的:可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给 exc...

【Java并发编程实战】—–“J.U.C”:Phaser

chenssy阅读(429)评论(6)

Phaser由java7中推出,是Java SE 7中新增的一个使用同步工具,在功能上面它与CyclicBarrier、CountDownLatch有些重叠,但是它提供了更加灵活、强大的用法。 CyclicBarrier,允许一组线程互相等...

【Java并发编程实战】—–“J.U.C”:ReentrantReadWriteLock

chenssy阅读(350)评论(0)

ReentrantLock实现了标准的互斥操作,也就是说在某一时刻只有有一个线程持有锁。ReentrantLock采用这种独占的保守锁直接,在一定程度上减低了吞吐量。在这种情况下任何的“读/读”、“读/写”、“写/写”操作都不能同时发生。然...

Chenssy's Blog | 致力打造个人精品博客

联系作者读书系统