摘要:   本文将介绍除了阻塞队列外的并发容器: ConcurrentHashMap、CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentSkipListMap、ConcurrentSkipListSet、ConcurrentLinked 阅读全文
posted @ 2018-03-02 23:48 jinggod 阅读(631) 评论(1) 推荐(0) 编辑
摘要: 1. 什么是阻塞队列? 阻塞队列(BlockingQueue) 是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程 阅读全文
posted @ 2018-03-02 23:46 jinggod 阅读(2039) 评论(1) 推荐(1) 编辑
摘要: 一、 同步容器 同步容器包括两类: Vector、Hashtable、Stack 同步的封装器类由 Collections.synchronizedXXX 等工厂方法创建的。(JDK1.2加入)   这些类实现线程安全的方式是:将他们的状态封装起来,并对每个公有方法都进行同步,使 阅读全文
posted @ 2018-03-02 23:44 jinggod 阅读(917) 评论(0) 推荐(0) 编辑
摘要: 深入理解java内存模型(一)——基础 深入理解java内存模型(二)——重排序 深入理解java内存模型(三)——顺序一致性 深入理解java内存模型(四)——volatile 深入理解java内存模型(五)——锁 深入理解java内存模型(六)——final 深入理解java内存模型(七)——总 阅读全文
posted @ 2018-03-02 23:42 jinggod 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 文章转载自: "正确使用 Volatile 变量"   Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅 阅读全文
posted @ 2018-03-02 23:37 jinggod 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 文章转载自 "聊聊并发(五)——原子操作的实现原理" 原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为”不可被中断的一个或一系列操作” 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Inter处理器和Java里是如何实现原子 阅读全文
posted @ 2018-03-02 23:28 jinggod 阅读(3403) 评论(0) 推荐(0) 编辑
摘要: 引言   Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝 阅读全文
posted @ 2018-03-02 23:05 jinggod 阅读(1523) 评论(0) 推荐(1) 编辑
摘要: 文章转载自 "AbstractQueuedSynchronizer的介绍和原理分析" 建议去看一下原文的评论,会有不少收获。 简介 AbstractQueuedSynchronizer 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个in 阅读全文
posted @ 2018-03-02 22:48 jinggod 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 前言   JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch、CyclicBarrier、Semphore、Exchanger、Phaser;   CountDownLatch、CyclicB 阅读全文
posted @ 2018-03-02 18:26 jinggod 阅读(806) 评论(0) 推荐(0) 编辑
摘要: 前言   JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch、CyclicBarrier、Semphore、Exchanger、Phaser;   CountDownLatch、CyclicB 阅读全文
posted @ 2018-03-02 17:36 jinggod 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 前言   JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch、CyclicBarrier、Semphore、Exchanger、Phaser;   CountDownLatch、CyclicB 阅读全文
posted @ 2018-03-02 17:18 jinggod 阅读(1547) 评论(0) 推荐(0) 编辑
摘要: 前言   JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch、CyclicBarrier、Semphore、Exchanger、Phaser;   CountDownLatch、CyclicB 阅读全文
posted @ 2018-03-02 17:09 jinggod 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 前言   JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch、CyclicBarrier、Semphore、Exchanger、Phaser;   CountDownLatch、CyclicB 阅读全文
posted @ 2018-03-02 10:54 jinggod 阅读(954) 评论(0) 推荐(0) 编辑
摘要:    任意一个Java对象,都拥有一组监视器方法(定义在根类Object上),主要包括:wait( )、wait(long timeout)、notify()、notifyAll()方法;这些方法与关键字synchronized结合使用,可以实现 隐式锁的等待/通知机制 。而显示 阅读全文
posted @ 2018-03-02 01:23 jinggod 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 前言:   上一篇文章,已经很详细地介绍了 显式锁Lock 以及 其常用的实现方式 ReetrantLock(重入锁),本文将介绍另一种显式锁 读写锁ReadWriteLock。    前面介绍的隐式锁Synchronize、重入锁ReetrantLock都是 阅读全文
posted @ 2018-03-02 01:11 jinggod 阅读(2037) 评论(0) 推荐(0) 编辑
摘要: 一、显式锁简介    显式锁,这个叫法是相对于隐式锁synchronized而言的,加锁和解锁都要用户显式地控制。显示锁Lock是在Java5中添加到jdk的,同synchronized一样,这也是一种协调共享对象访问的机制。但是它不是用来替代内置锁的,而是一种可选择的高级功能。 阅读全文
posted @ 2018-03-02 01:04 jinggod 阅读(1269) 评论(0) 推荐(2) 编辑