原文:【Java并发编程实战】-----“J.U.C”:Condition

在看Condition之前,我们先来看下面这个例子: 工厂类,用来存放 取出商品: 生产者,生产商品,往仓库里面添加商品: 消费者,消费商品,从仓库里面取出商品: 测试类: 运行结果: 程序的运行结果是没有错误的,先put 然后get put put get 。程序运行结果非常正确,但是在现实生活中,这个实例存在两处错误: 第一:仓库的容量是有限的,我们不可能无限制的往仓库里面添加商品。 第二:仓 ...

2015-09-06 12:44 0 2075 推荐指数:

查看详情

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

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

Tue Nov 24 04:08:00 CST 2015 4 4656
Java并发编程实战】-----“J.U.C”:ReentrantReadWriteLock

ReentrantLock实现了标准的互斥操作,也就是说在某一时刻只有有一个线程持有锁。ReentrantLock采用这种独占的保守锁直接,在一定程度上减低了吞吐量。在这种情况下任何的“读/读”、“读/写”、“写/写”操作都不能同时发生。然而在实际的场景中我们就会遇到这种情况:有些资源并发的访问中 ...

Fri Oct 30 17:39:00 CST 2015 3 1754
Java并发编程实战】-----“J.U.C”:CAS操作

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

Mon Dec 07 17:18:00 CST 2015 2 1918
Java并发编程实战】-----“J.U.C”:锁,lock

java中有两种方法实现锁机制,一种是在前一篇博客中(【java7并发编程实战】-----线程同步机制:synchronized)介绍的synchronized,而另一种是比synchronized更加强大和领过的Lock。Lock确保当一个线程位于代码的临界区时,另一个线程不进入临界区,相对于 ...

Tue Aug 11 01:22:00 CST 2015 0 2954
Java并发编程实战】-----“J.U.C”:CLH队列锁

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

Thu Dec 10 17:40:00 CST 2015 0 4727
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM