6.8k 6 分钟

# 前言

AQS 是一个同步框架的抽象类,实现了锁相关的操作和一个先进先出的阻塞队列,可以通过集成它来实现同步锁操作。它提供的主要方法有 acquire 和 release,获取和释放锁。

4.2k 4 分钟

# 前言

它是一个具有延时的队列,队列中的元素必须实现 getDelay 和 compareTo 方法。

# 源码分析

# Delay

Delayed 接口定义了 getDelay 方法,获取每个元素的延时时间,同时也继承了 Comparable 接口,来比较元素之间的大小。

1.3k 1 分钟

# 前言

阻塞队列是当队列空或满的情况下,能够阻塞消费者或生产者,然后在队列有数据或有空位置的时候,能够唤醒被阻塞的线程。

# 常见阻塞队列

Java 中有 7 种常见的阻塞队列:

12k 11 分钟

# 前言

HashMap 虽然很常用,但是线程不安全,具体哪里会线程不安全呢?可以看看 ConcurrentHash 是如何处理线程安全的,它就是对 HashMap 线程安全的改造。HashTable 也是线程安全的,但是它采用了在方法同步的方式,效率很低。

注:本文仅针对 JDK8。

4.1k 4 分钟

# 线程池简介

线程池是用于实现计算机程序中执行并发性的软件设计模式。线程池维护多个线程,等待由监督程序分配任务以便并发执行。

相较于普通创建线程的方式,线程池有以下两个个优点: