前言 本文转自:https://www.cnblogs.com/starry-skys/p/12489271.html JDK1.5 之后发布了JUC(java.util.concurrent),用于解决多线程并发问题。AQS 是一个特别重要的同步框架,很多同步类都借助于 AQS 实现了对线程同步状 ...
分类:
其他好文 时间:
2020-03-14 11:14:24
阅读次数:
39
synchronized 锁,对于非静态方法,默认为this,对于静态方法,默认为 该类的运行时类实例. class Number { public synchronized void getOne(){ System.out.println("one"); } public synchronize ...
分类:
编程语言 时间:
2020-03-14 11:01:09
阅读次数:
69
应用示例 class Demo{ int number; ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); public void read(){ //读锁 lock.readLock().lock(); try { System ...
分类:
编程语言 时间:
2020-03-13 18:37:03
阅读次数:
61
14.常用辅助类 14.1CountDownLatch:减法计数器 14.2CyclicBarrier:加法计数器 14.3 Semaphore:信号量 acquire() 当一个线程调用acquire方法的时候,就是获取到了一个信号量 1 如果当前为0,就会一直等待下去 release() 信号量 ...
分类:
其他好文 时间:
2020-03-10 13:47:00
阅读次数:
67
五、Synchronized 与 JUC 具体实现对比 Synchronized JUC 判断 Object Condition 等待 wait await 通知 notify/notifyAll signal/signalAll 线程之间的通信: 判断 执行 通知虚假唤醒问题:使用while进行条 ...
分类:
其他好文 时间:
2020-03-07 13:30:19
阅读次数:
66
在 JUC 下包含了一些常用的同步工具类,今天就来详细介绍一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它们之间的区别。 一、CountDownLatch 先看一下,CountDownLatch 源码的官方介绍。 意思是,它是一个同步辅助器,允许一 ...
分类:
其他好文 时间:
2020-03-06 20:02:20
阅读次数:
59
Executor JUC 包中的 Executor 架构带来了线程的创建与执行的分离。Executor 的继承者 ExecutorService 下面衍生出了两个重要的实现类,他们分别是 ThreadPoolExecutor 线程池 ScheduledThreadPoolExecutor 支持周期性 ...
分类:
其他好文 时间:
2020-03-04 22:54:35
阅读次数:
61
一、基础 JUC: java.util下面的concurrent以及concurrent.atomic、concurrent.locks并发包的总称 线程:进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。 进程:线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分 ...
分类:
其他好文 时间:
2020-03-04 19:06:55
阅读次数:
50
警醒自己不断学习和成长 正式学习的准备工作 JUC并发编程 1.什么是JUC JUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包,JDK 1.5开始出现的。 2.进程和线程回顾 什么是进程和线程? 进程:是一个具有一定独立功能的程序在一个数据集上的一次动态执行 ...
分类:
其他好文 时间:
2020-03-02 23:17:18
阅读次数:
126
AQS介绍 AbstractQueuedSynchronizer简称AQS,即队列同步器。它是JUC包下面的核心组件,它的主要使用方式是继承,子类通过继承AQS,并实现它的抽象方法来管理同步状态,它分为独占锁和共享锁。很多同步组件都是基于它来实现的,比如我门常见的ReentrantLock,它是基于 ...
分类:
其他好文 时间:
2020-02-29 18:57:36
阅读次数:
81