# java-multithreading-demo **Repository Path**: kangwentao/java-multithreading-demo ## Basic Information - **Project Name**: java-multithreading-demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-28 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java 多线程所有应用场景演示 > 一个覆盖 Java 多线程**所有核心场景**的 Maven 项目,每个场景独立可运行,附详细注释。 --- ## 项目结构 ``` java-multithreading-demo/ ├── pom.xml └── src/main/java/com/demo/ ├── Main.java # 主入口,串联所有场景 ├── basic/ │ ├── ThreadCreationDemo.java # 场景01:线程创建四种方式 │ └── ThreadLifecycleDemo.java # 场景02:生命周期/状态/中断/守护线程 ├── sync/ │ ├── SynchronizedDemo.java # 场景03:synchronized/死锁/重入 │ └── LockDemo.java # 场景04:Lock/ReentrantLock/读写锁/邮戳锁 ├── communication/ │ ├── WaitNotifyDemo.java # 场景05:wait/notify/notifyAll │ ├── ConditionDemo.java # 场景06:Condition 精准通知 │ └── BlockingQueueDemo.java # 场景07:BlockingQueue 各类实现 ├── pool/ │ ├── ThreadPoolExecutorDemo.java # 场景08:线程池七大参数/四种策略 │ ├── ScheduledPoolDemo.java # 场景09:定时/周期任务 │ ├── CompletableFutureDemo.java # 场景10:异步编排/组合/异常处理 │ └── ForkJoinDemo.java # 场景18:Fork/Join 分治并行 ├── tools/ │ ├── CountDownLatchDemo.java # 场景11:倒计时门闩 │ ├── CyclicBarrierDemo.java # 场景12:循环屏障 │ ├── SemaphoreDemo.java # 场景13:信号量/限流/连接池 │ └── ExchangerPhaserDemo.java # 场景14:Exchanger交换/Phaser分阶段 ├── atomic/ │ └── AtomicCASDemo.java # 场景15:原子类/CAS/ABA/LongAdder ├── container/ │ └── ConcurrentContainerDemo.java # 场景16:并发容器 ├── local/ │ └── ThreadLocalDemo.java # 场景17:ThreadLocal/内存泄漏防范 ├── jmm/ │ └── JmmVolatileDemo.java # 场景19:JMM/volatile/happens-before └── pattern/ └── MultithreadPatternDemo.java # 场景20:流水线/Master-Worker/两阶段终止 ``` --- ## 场景总览 | # | 场景 | 核心知识点 | |---|------|-----------| | 01 | 线程创建 | Thread继承、Runnable、Callable+FutureTask、线程池 | | 02 | 生命周期 | NEW/RUNNABLE/BLOCKED/WAITING/TIMED_WAITING/TERMINATED、interrupt、daemon | | 03 | synchronized | 方法锁/类锁/代码块锁、可重入性、死锁及规避 | | 04 | Lock | ReentrantLock、tryLock、ReadWriteLock、StampedLock乐观读 | | 05 | wait/notify | 生产者-消费者、交替打印奇偶数、while防虚假唤醒 | | 06 | Condition | 精准通知(notFull/notEmpty)、三线程顺序打印ABC | | 07 | BlockingQueue | ArrayBQ、PriorityBQ、DelayQueue、SynchronousQueue | | 08 | 线程池 | ThreadPoolExecutor七参数、四种拒绝策略、异常处理 | | 09 | 定时任务 | schedule、scheduleAtFixedRate、scheduleWithFixedDelay | | 10 | CompletableFuture | 链式回调、thenCombine、allOf/anyOf、异常处理、实战并发聚合 | | 11 | CountDownLatch | 等待所有任务完成、发令枪并发模式 | | 12 | CyclicBarrier | 分阶段任务、BrokenBarrierException、可重用 | | 13 | Semaphore | 连接池、限流、tryAcquire、互斥锁(permits=1) | | 14 | Exchanger/Phaser | 双缓冲交换、分阶段协作、动态注册/注销 | | 15 | Atomic/CAS | AtomicInteger、CAS无锁栈、ABA问题、LongAdder高并发 | | 16 | 并发容器 | ConcurrentHashMap、CopyOnWriteArrayList、ConcurrentLinkedQueue、SkipListMap | | 17 | ThreadLocal | 线程隔离、Web请求上下文、InheritableThreadLocal、内存泄漏防范 | | 18 | Fork/Join | RecursiveTask并行求和、RecursiveAction归并排序、parallelStream | | 19 | JMM/volatile | 可见性、指令重排、DCL单例、happens-before | | 20 | 设计模式 | 流水线Pipeline、Master-Worker、两阶段终止、半同步半异步 | --- ## 快速运行 ### 环境要求 - JDK 17+ - Maven 3.6+ ### 运行所有场景 ```bash cd java-multithreading-demo mvn compile exec:java -Dexec.mainClass=com.demo.Main ``` ### 运行单个场景 ```bash # 示例:只运行线程池场景 mvn compile exec:java -Dexec.mainClass=com.demo.pool.ThreadPoolExecutorDemo ``` ### 在 IDE 中运行 直接打开项目,找到对应的 Demo 类,运行 `main()` 方法即可。 --- ## 知识体系图 ``` Java 多线程 ├── 线程基础 │ ├── 创建方式(Thread/Runnable/Callable/Pool) │ ├── 生命周期(6种状态) │ └── 控制(sleep/join/interrupt/daemon/priority) │ ├── 线程安全(同步) │ ├── synchronized(方法/代码块/类锁) │ ├── Lock 家族(ReentrantLock/RW/Stamped) │ └── volatile(可见性 + 禁重排) │ ├── 线程通信 │ ├── wait/notify/notifyAll │ ├── Condition(精准唤醒) │ └── BlockingQueue(生产者消费者最佳实践) │ ├── 线程池 │ ├── ThreadPoolExecutor(七参数) │ ├── ScheduledExecutorService │ ├── CompletableFuture(异步编排) │ └── ForkJoinPool(分治并行) │ ├── 并发工具类(JUC) │ ├── CountDownLatch(倒计时/发令枪) │ ├── CyclicBarrier(循环屏障) │ ├── Semaphore(信号量/限流) │ ├── Exchanger(线程交换) │ └── Phaser(分阶段) │ ├── 原子类 │ ├── AtomicInteger/Long/Reference │ ├── CAS 无锁算法 │ ├── ABA 问题 & StampedReference │ └── LongAdder(高并发累加) │ ├── 并发容器 │ ├── ConcurrentHashMap │ ├── CopyOnWriteArrayList │ └── ConcurrentLinkedQueue │ ├── 线程隔离 │ └── ThreadLocal(含内存泄漏防范) │ ├── JMM │ ├── 三大特性(原子/可见/有序) │ ├── volatile │ └── happens-before 规则 │ └── 设计模式 ├── 流水线(Pipeline) ├── Master-Worker ├── 两阶段终止 └── 半同步半异步 ```