本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。 "并发编程系列博客传送门" Lock接口简介 在JUC包下面有一个 包,这个包提供了一系列基础的锁工具,对传统的synchronizd、wait和notify等同步机制进行补充和增 ...
分类:
其他好文 时间:
2020-02-25 12:42:11
阅读次数:
57
1 前言 在学习 JUC 的过程中我发现,JUC 这个包下面的文档写的十分的好,清楚又易于理解,这篇博客便是参考 JUC 中和 Executor 框架相关的一些类文档汇总出来的。 当然了,Executor 框架涉及到的类还是不少的,全部汇总的话时间成本太高,有点亏,所以这里主要就集中在了 Execu ...
分类:
编程语言 时间:
2020-02-23 18:18:12
阅读次数:
87
j.u.c是java.util.concurrent的简称 通过查 "api" ,了解到是由以下这三个组成的。 juc包图 锁的两种实现方式 java并发编程,关于锁的实现方式有两种: 1.基于synchronized关键字实现同步,jvm内置锁,也叫隐式锁,由jvm自动加锁和解锁 2.juc下的l ...
分类:
其他好文 时间:
2020-02-23 09:55:30
阅读次数:
62
张图说明下要分享的内容: 01. Lock接口 JUC包中的 Lock 接口支持那些语义不同(重入、公平等)的锁规则。所谓语义不同,是指锁可是有"公平机制的锁"、"非公平机制的锁"、"可重入的锁"等等。 "公平机制"是指"不同线程获取锁的机制是公平的", 而"非公平机制"则是指"不同线程获取锁的机制 ...
分类:
其他好文 时间:
2020-02-19 00:34:04
阅读次数:
71
前言AQS(Abstract Queued Synchronizer)是JUC并发包中的核心基础组件,作者是大名鼎鼎的Doug Lea。通过AQS可以实现大部分的同步需求。宏观架构AQS包括一个state和一个FIFO的CLH队列,如下图所示:CLH队列中的每个节点Node就可以对应与争用该资源的线... ...
分类:
其他好文 时间:
2020-02-18 18:54:59
阅读次数:
58
引言 这部分内容详解线程的同步与互斥,解决线程同步与互斥的主要方式是 CAS、synchronized 和 lock。 CAS 与 ABA 问题 什么是 CAS ? CAS 是乐观锁的一种实现方式,是一种轻量级锁,JUC 中很多工具类的实现都是基于 CAS 的,用于解决线程的同步与互斥。解决线程同步 ...
分类:
编程语言 时间:
2020-02-18 13:21:40
阅读次数:
100
链接 Java 语言特性【一】——JUC(Java 并发工具包) ...
分类:
编程语言 时间:
2020-02-18 13:18:43
阅读次数:
63
引言 JUC即java.util.concurrent,是java提供的用于多线程处理的工具类库。 打开jdk包,JUC代码就在rt.jar包中,concurrent下有atomic和locks两个package,并且还有concurrentXXX、Executor、Future、Queue等。 A ...
分类:
编程语言 时间:
2020-02-18 13:10:42
阅读次数:
104
前提 最近在看JUC线程池 的源码实现,其中了解到 的实现原理。从目前 的实现来看,虽然实现了异步提交任务,但是任务结果的获取过程需要主动调用 或者 ,而前者是阻塞的,后者在异步任务执行时间不确定的情况下有可能需要进行轮询,这两种情况和异步调用的初衷有点相违背。于是笔者想结合目前了解到的 实现原理的 ...
分类:
编程语言 时间:
2020-02-17 00:37:33
阅读次数:
73
一、简介 StampedLock类,在JDK1.8时引入,是对读写锁ReentrantReadWriteLock的增强,该类提供了一些功能,优化了读锁,写锁的访问,同时是读写锁之间可以互相转换,更细粒度控制并发。 首先明确下,该类的设计初衷是作为一个内部工具类,用于辅助开发其他线程安全组件,用得好, ...
分类:
其他好文 时间:
2020-02-12 22:29:04
阅读次数:
96