- 浏览: 26374 次
- 性别:
- 来自: 杭州
最新评论
-
wode66:
仔细看过楼主的文章,文字解释都很清晰,不过,图片gif有些地方 ...
Java并发编程J.U.C之Condition -
xiaoZ5919:
好文章!thanks for sharing
Tomcat Wrapper组件 -
bjmike:
<p>好文章,拜读了!!</p>
Java并发编程之ConcurrentHashMap -
elam:
我觉得作者顺便讲讲volatile关键字会更清晰引用IbmDe ...
Java并发编程之ConcurrentHashMap -
wanbin021614:
文章写得很好提个小建议,应该补充一下ConcurrentHas ...
Java并发编程之ConcurrentHashMap
文章列表
[注]:本文与黄金档
上的文章同步,详见http://www.goldendoc.org/2011/08/jms_spec_message/
。
JMS
,即
Java Message Service
,它为
Java
应用程序提供了一种通用的用于创建、发送、接收以及读取消息的方式;
JMS
体系架构
1、
JMS Provider
面向消息中间件的,
JMS
接口的一个实现。提供者可以是
Java
平台的
JMS
实现,也可以是非
Java
平台的面向消息中间件的适配器;
...
java NIO的实现中,有不少细节点非常有学习意义的,就好比下面的这个点:
Selector的 wakeup原理是什么?是如何实现的?
wakeup()
准确来说,应该是Selector的wakeup(),即Selector的唤醒,为什么要有这个唤醒操作呢?那还得从Selecto ...
最近花些功夫在研究Java
NIO的JDK源码,发现Selector的实现,除了在唤醒机制上做了手脚,主要依赖操作系统的实现,为了无负担的弄懂Selector,有必要研究一
下操作系统是如何实现选择的。本文主要参考linux-2.6.10内核epoll的实现 ...
ConcurrentHashMap
ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。
ConcurrentHashMap的内部结构
ConcurrentHashMap为了提高本身的并发能力,在内部采用了一个叫做Segment的结构,一个Segment其实就是一个类Hash Table的结构,Segment内部维 ...
在上一篇中,我们了解了下J.U.C的锁的获取与释放的过程
,这个过程主要通过在A.Q.S中维持一个等待队列来实现,其中我们也提到了,在A.Q.S中除了一个等待队列之外,还有一个Condition队列,在了解Condition队列之前,先来看一下Condition是怎么回事:
写道
The synchronizer framework provides a ConditionObject class for use by synchronizers that maintain exclusive synchronization and conform to the Lock i ...
上一篇文章中,我们对J.U.C的一些大概的情况做了了解,在这一篇文章我们将来以ReentrantLock为例,来分析一下锁的获取和释放的过程,让大家能够对锁的获取和释放的整体过程有一个了解。
一、锁的获取
先看下ReentrantLock的lock()方法,整个方法只有一行,调用acquire方法,看看acquire方法的实现:
public final void acquire(int arg) {
if (!tryAcquire(arg) &&
acquireQueued(addWaiter(Node.EXCLUSIVE), a ...