# concurrent **Repository Path**: cxsunfeng/concurrent ## Basic Information - **Project Name**: concurrent - **Description**: 并发学习项目初始化 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-16 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Based on the provided code map, I can analyze the project structure and create a comprehensive README. This is a Java concurrency learning project with various demonstrations and examples. --- # Concurrent Java 并发编程学习教程 ## 项目简介 本项目是一个 Java 并发编程的学习教程,通过大量的示例代码全面讲解 Java 并发编程的核心知识点。涵盖了从基础的线程创建、线程同步,到高级的并发工具类、ForkJoin 分治编程等内容。 ## 技术栈 - **Java 8** - **Maven** ## 核心内容 ### 1. 线程基础 (chapter01, chapter03) - 线程的创建与启动 - Thread 和 Runnable 两种实现方式 - 线程状态与生命周期 - 线程中断与 interrupt 方法 ### 2. 线程同步 (n3, n4, n4/sync) - synchronized 关键字 - 对象的监视器锁 - wait/notify 等待通知机制 - 死锁检测与避免 ### 3. 并发工具类 (n4, n6) - Lock 显式锁 - ReentrantLock 可重入锁 - StampedLock 戳锁 - Condition 条件变量 - Semaphore 信号量 - CountDownLatch 倒计时门闩 - Atomic 原子变量 ### 4. 线程池 (n8, chapter02) - Executor 框架 - ThreadPoolExecutor - ForkJoinPool - ScheduledExecutorService - CompletionService - 自定义线程池实现 ### 5. 异步编程 (day01, day02, jksj/p24-p27) - Future 模式 - CompletableFuture 异步编程 - 任务编排与组合 - 并行执行优化 ### 6. 并发容器 (n8/concurrenthashmap) - ConcurrentHashMap - CopyOnWriteArrayList ### 7. ThreadLocal - 线程本地变量 - InheritableThreadLocal ### 8. 网络编程 (nio/socket) - NIO 非阻塞 IO - Socket 编程 - BIO 与 NIO 对比 ## 目录结构 ``` case_java8/src/main/java/ ├── com/atguigu/day01/ # CompletableFuture 入门 ├── com/atguigu/day02/ # CompletableFuture 进阶 ├── com/executor/future/ # Future 示例 ├── com/juc/ # JUC 原子类 ├── com/nio/socket/ # NIO 网络编程 ├── com/sunfeng/ │ ├── concurrent/chapter01/ # 线程基础 │ ├── concurrent/chapter02/ # 线程池 │ ├── concurrent/chapter03/ # 线程控制 │ ├── fx/ # 并发案例 │ ├── heima/chap1/ # 黑马教程 │ ├── jksj/ # 极客时间教程 │ ├── n2-n8/ # 并发编程系列 │ └── n4/ # 锁与同步 └── com/test/ # 测试 ``` ## 快速开始 ### 环境要求 - JDK 8 或更高版本 - Maven 3.x ### 编译运行 ```bash cd case_java8 mvn clean compile ``` ### 运行示例 ```bash # 运行 CompletableFuture 示例 mvn exec:java -Dexec.mainClass="com.atguigu.day01.CompletableFutureDemo" # 运行线程池示例 mvn exec:java -Dexec.mainClass="com.sunfeng.n8.TestPool" ``` ## 主要示例类 | 类别 | 示例类 | 说明 | |------|--------|------| | CompletableFuture | `CompletableFutureDemo` | 异步任务创建与组合 | | 线程池 | `TestPool` | 手写线程池实现 | | ForkJoin | `TestForkJoin` | 分治并行计算 | | Lock | `ReentrantLockTest` | 显式锁使用 | | StampedLock | `Demo04` | 戳锁读写分离 | | Atomic | `AtomicIntegerDemo` | 原子操作 | | ThreadLocal | `ThreadLocalTest` | 线程本地变量 | ## 学习路线 1. **入门阶段**: 了解线程创建方式 (Thread, Runnable, Callable) 2. **同步阶段**: 掌握 synchronized 和 Lock 3. **工具阶段**: 学习 JUC 并发工具类 4. **实践阶段**: 掌握线程池和异步编程 5. **高级阶段**: 深入理解并发原理和性能优化 ## 许可证 本项目仅供学习交流使用。 ## 贡献 欢迎提交 Issue 和 Pull Request 来完善本项目。