mcpField
J
java-concurrency

java-concurrency

github.com/pluginagentmarketplace开发41466 次安装42 周前更新
代码仓库

关于 java-concurrency

java-concurrency 是介绍 Java 并发编程的技能,适合编写线程安全代码、并行处理和排查并发问题的开发者。内容涵盖线程管理、同步机制、执行器、虚拟线程与 CompletableFuture,并附有调优和故障排查参考。

主要功能

  1. 01讲解线程生命周期与中断处理
  2. 02介绍同步器、锁与原子操作
  3. 03涵盖线程池和 ForkJoinPool
  4. 04说明 Java 21+ 虚拟线程
  5. 05介绍 CompletableFuture 组合与异常处理

适用场景

  1. 01实现线程安全的 Java 代码
  2. 02为并行处理配置执行器
  3. 03排查死锁、竞态和线程饥饿
  4. 04调试线程池或并发任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-concurrency

安装后在 Claude Code 中输入/java-concurrency确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
config.yaml
schema.json
references/
GUIDE.md
PATTERNS.md
scripts/
validate.py

详细介绍

Java 并发技能

掌握 Java 并发模式,构建线程安全的应用程序。

概述

本技能涵盖从基础线程到虚拟线程(Java 21+)的并发知识,包括线程池、同步和 CompletableFuture。

适用场景

在以下情况下使用:

  • 编写线程安全的代码
  • 实现并行处理
  • 使用异步编程模式
  • 调优线程池
  • 调试并发问题

涵盖主题

线程管理
  • 线程生命周期和状态
  • 守护线程与用户线程
  • 中断处理
同步
  • synchronized、volatile
  • Lock 接口(ReentrantLock)
  • 原子操作
执行器
  • ThreadPoolExecutor 配置
  • ForkJoinPool
  • 虚拟线程(Java 21+)
CompletableFuture
  • 异步执行
  • 链式调用与组合
  • 异常处理

快速参考

// Virtual Threads (Java 21+)
try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
    IntStream.range(0, 10_000).forEach(i ->
        executor.submit(() -> processRequest(i)));
}

// CompletableFuture composition
CompletableFuture<Result> result = fetchUser(id)
    .thenCompose(user -> fetchOrders(user.id()))
    .thenApply(orders -> processOrders(orders))
    .exceptionally(ex -> handleError(ex))
    .orTimeout(5, TimeUnit.SECONDS);

// Thread pool configuration
ThreadPoolExecutor executor = new ThreadPoolExecutor(
    10, 50, 60L, TimeUnit.SECONDS,
    new ArrayBlockingQueue<>(1000),
    new ThreadPoolExecutor.CallerRunsPolicy()
);

// Lock with timeout
ReentrantLock lock = new ReentrantLock();
if (lock.tryLock(1, TimeUnit.SECONDS)) {
    try {
        // critical section
    } finally {
        lock.unlock();
    }
}

线程池大小设置

工作负载公式示例
CPU 密集型核心数8 个线程
I/O 密集型核心数 * (1 + 等待时间/计算时间)80 个线程

故障排查

问题原因解决方案
死锁循环锁锁排序、tryLock
竞态条件缺少同步添加锁/原子操作
线程饥饿调度不公平公平锁
调试命令
jstack -l <pid> > threaddump.txt
jcmd <pid> Thread.print

用法

Skill("java-concurrency")

评论

支持 Markdown