这是一件很酷的事
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

java线程通信

一、wait /notify/notifyAll 底层原理1. 核心前提 必须在synchronized 锁内部使用,否则直接抛 IllegalMonitorStateException 调用 wait() 会自动释放当前锁,进入对象的 WaitSet 等待池 被唤醒后不会立刻执行,需要重新竞争锁,抢到锁才会继续往下走 2. 方法作用 obj.wait() 当前线程进入无限等
2026-04-16
java并发
#java并发

读写锁StampedLock

Java 读写锁ReentrantReadWriteLock 读写锁核心特性 读写分离:分为读锁(共享锁)和写锁(独占锁) 互斥规则 读 + 读:不互斥,多个线程可以同时加读锁 读 + 写:互斥,读锁持有时写锁阻塞,写锁持有时读锁阻塞 写 + 写:互斥,完全独占 可重入:同一个线程可以重复获取锁 支持锁降级:写锁可以降级为读锁(先获取写锁 → 获取读锁 → 释放写锁) 致命缺点读多写少时,会
2026-04-16
java并发
#java并发

ReentrantLock与显式锁

一、ReentrantLock 使用与 API核心使用流程: 手动加锁、手动解锁,必须在 finally 释放锁,避免死锁。 1234567ReentrantLock lock = new ReentrantLock();lock.lock(); // 加锁try { // 临界区业务} finally { lock.unlock(); /
2026-04-15
java并发
#java并发

AQS核心原理

AQS 核心原理AQS(AbstractQueuedSynchronizer) 是 Java 并发包的核心基石,ReentrantLock、CountDownLatch、Semaphore 等锁 / 同步工具底层都基于 AQS 实现。 它的核心设计:用一个 state 变量控制同步状态 + 一个 CLH 双向队列管理等待线程,通过 CAS 实现无锁竞争,高效实现线程阻塞 / 唤
2026-04-15
java并发
#java并发

LockSupport与线程阻塞唤醒

1. park /unpark 工作机制 LockSupport.park() 阻塞当前线程,直到被 unpark 或线程中断。 LockSupport.unpark(Thread t) 给指定线程发放一个「许可」,让它从 park 中返回。 核心机制:许可机制(类似 0/1 信号量)LockSupport.park() 尝试拿走这张令牌 当前令牌 = 1:拿
2026-04-15
java并发
#java并发

CAS与无锁编程

1. CAS 原理:Compare And SwapCAS = 比较并交换,是一条CPU 原子指令(CMPXCHG),流程: 先比较:内存当前值 V == 预期旧值 A? 若相等:把内存值 V 改为新值 B 若不等:说明被别人改过,本次失败,可重试 伪代码逻辑(原子执行): 1234567boolean cas(V, A, B) { if (V =
2026-04-15
java并发
#java并发

线程安全与synchronized

一、线程安全基础:竞态条件 & 临界区1. 竞态条件(Race Condition)多个线程同时操作、修改同一个共享变量,执行结果依赖线程执行的先后顺序,最终导致结果错误。 根本原因:读 - 改 - 写三步不是原子操作。 典型例子:i++ 多线程下计数错误。 2. 临界区(Critical Section)会发生线程安全问题的代码块,就是临界区。 多个线程同时进入临界区 → 线程不安
2026-04-15
java并发
#java并发

java内存模型JMM

Java 内存模型(JMM)Java 内存模型(JMM)是一套规范,用来屏蔽不同硬件和操作系统的内存访问差异,让 Java 程序在各种平台下都能实现一致的并发效果。它的核心目标是解决多线程下的原子性、可见性、有序性问题,定义了线程和主内存之间的抽象关系。 一、JMM 核心:三大特性JMM 围绕原子性、可见性、有序性三大特性设计,这是多线程并发安全的基础。 1. 原子性(Atomicity)定义:一
2026-04-15
java并发 > jvm
#java并发

java线程基础

创建线程的方式1. 继承 Thread 类 自定义类继承 Thread,重写 run() 方法 创建实例,调用 start() 启动线程 缺点:Java 单继承,无法再继承其他类 12345678910111213class MyThread extends Thread { @Override public void run() { System.
2026-04-15
java并发
#java并发

python的uv工具

概述uv 是由 Astral 团队(也是高速 Python Linter 工具 Ruff 的开发者)推出的一款新一代 Python 项目管理工具。 它基于 Rust 语言编写,旨在解决传统 Python 工具链(如 pip、virtualenv、poetry、pyenv、pipx 等)速度慢、功能分散的问题。uv 被设计为“Python 界的 Cargo”(Rust 的包管理器),提供了一个极速、
2026-02-27
其他工具
#uv
12345…29

搜索

Hexo Fluid
京ICP备18028493号 | police-icon 11010502035713