一、CountDownLatch 场景:主线程需要等待所有子线程执行完毕后再进行汇总 CountDownLatch实现比较简单,继承AQS实现了一个不可重入共享锁Sync 1.不可重入共享锁Sync private static final class Sync extends AbstractQu ...
分类:
编程语言 时间:
2020-02-06 14:54:31
阅读次数:
89
IPC机制 进程间通信 + 进程和线程 + 线程是CPU调度的最小单元,同时线程是一种有限的系统资源。 + 进程一般指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个进程可以包含多个线程。 + 多进程情况 + 一个应用出自某些原因采用多进程模式实现,比如希望通过多进程获取多份内存空间。 ...
分类:
其他好文 时间:
2020-02-04 13:52:18
阅读次数:
86
ScheduledThreadPoolExecutor继承了ThreadPoolExecutor,是一个指定一定延迟时间后或者定时进行任务调度执行的线程池 参考自《java并发编程之美》 ...
分类:
其他好文 时间:
2020-02-04 00:14:40
阅读次数:
100
前言 在Java 1.5之前,Java语言提供的唯一并发语言就是管程,Java 1.5之后提供的SDK并发包也是以管程为基础的。除了Java之外,C/C++、C 等高级语言也都是支持管程的。 那么什么是管程呢? 见名知意,是指管理共享变量以及对共享变量操作的过程,让它们支持并发。翻译成Java领域的 ...
分类:
编程语言 时间:
2020-01-28 21:07:16
阅读次数:
93
前提 最近一直在看 相关的内容,也在编写一个轻量级的 框架来练手,途中发现了 的源码有很多亮点,某些实现甚至可以用 苛刻 来形容。另外, 提供的工具类也是相当优秀,可以开箱即用。这里分析一下个人比较喜欢的领域,并发方面的一个 工具模块 。 环境版本: Promise简介 Promise,中文翻译为承 ...
分类:
Web程序 时间:
2020-01-24 10:54:28
阅读次数:
91
CAS是什么? CAS的全称为Compare And Swap它是一条CPU并发原语,也就是在CPU硬件层面上来说比较并且判断是否设置新值这段操作是原子性的,不会被其他线程所打断。在JAVA并发包java.util.concurrent.atomic下底层所采用的就是利用CAS机制来避免进行并发计算 ...
分类:
编程语言 时间:
2020-01-24 00:32:08
阅读次数:
122
两个锁都是依赖AQS实现的,方法基本是Sync的封装,主要看Sync的设计实现, 一、可重入独占锁ReentrantLock 1.静态内部抽象类Sync //继承AQS abstract static class Sync extends AbstractQueuedSynchronizer { p ...
分类:
其他好文 时间:
2020-01-22 18:18:05
阅读次数:
111
一、ArrayBlockingQueue概述 ArrayBlockingQueue是java并发包下一个以数组实现的阻塞队列,它是线程安全的 public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements Blocking ...
分类:
编程语言 时间:
2020-01-16 00:46:16
阅读次数:
85
介绍 j.u.c包中的 定义了锁的行为。 而 是并发包下提供的一个锁的实现,它是一个可重入的、排他的锁。 有的属性也很简单,除了一个 外,只有一个 。 可以分为公平锁和非公平锁两种。可以在创建时,通过向构造函数传入 参数指定: 无参的构造函数默认会创建一个非公平锁。公平锁和非公平锁的主要区别是:公平 ...
分类:
其他好文 时间:
2020-01-15 13:24:52
阅读次数:
59
一、Lock接口: 在Java SE 5之后,并发包中新增了Lock接口及相关实现类来实现锁功能。 Lock接口和synchronized关键字实现锁的区别: (1)Lock接口需要显示的获取和释放锁,sychronized是隐式的获取和释放锁。也正因为如此,使得Lock接口拥有了锁获取与释放的可操 ...
分类:
其他好文 时间:
2020-01-11 13:21:17
阅读次数:
76