mcpField
1
125-java-concurrency

125-java-concurrency

github.com/jabrena开发456406 次安装1 天前更新
代码仓库

关于 125-java-concurrency

面向 Java 并发代码审查与改进的技能,按示例提供实践指导。要求修改前先编译,完成后运行完整验证。

主要功能

  1. 01线程安全与同步指导
  2. 02ExecutorService 和虚拟线程模式
  3. 03异步组合与协作模式
  4. 04取消、背压和死锁防护
  5. 05修改前编译及完整构建验证

适用场景

  1. 01审查 Java 代码中的竞态条件
  2. 02为工作负载选择并发原语
  3. 03改进取消处理和线程池行为

安装

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

$npx skills add https://github.com/jabrena/plinth --skill 125-java-concurrency

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

附带文件references/125-java-concurrency.md

详细介绍

并发对象的 Java 规则

通过使用现代 java.util.concurrent 工具和虚拟线程,识别并应用 Java 并发最佳实践,以提升线程安全性、可扩展性和可维护性。

此技能涵盖哪些内容?

  • 线程安全基础:ConcurrentHashMap、AtomicInteger、ReentrantLock、ReadWriteLock、Java 内存模型
  • ExecutorService 线程池配置:大小、保活时间、有界队列、拒绝策略、优雅关闭
  • 使用 BlockingQueue 实现生产者-消费者和发布-订阅模式
  • 使用 CompletableFuture 进行非阻塞异步组合(thenApply/thenCompose/exceptionally/orTimeout)
  • 不可变性和安全发布(volatile、静态初始化器)
  • 锁竞争和伪共享性能优化
  • 使用虚拟线程(Executors.newVirtualThreadPerTaskExecutor())提升 I/O 密集型任务的可扩展性
  • 在 Java 27 预览版中使用结构化并发(StructuredTaskScope)处理相关子任务
  • 对不可变的跨任务数据,使用 ScopedValue 替代 ThreadLocal
  • 协作式取消和 InterruptedException 处理规范
  • 使用有界队列和 CallerRunsPolicy 实现背压
  • 通过全局锁顺序和带超时的 tryLock 避免死锁
  • CPU 密集型任务的 ForkJoin/并行流处理规范
  • 检测虚拟线程固定(JFR VirtualThreadPinned)
  • 通过线程命名和 UncaughtExceptionHandler 实现可观测性
  • 根据用途选择合适的原语:LongAdder、CopyOnWriteArrayList、StampedLock、Semaphore、CountDownLatch、Phaser

范围: 本参考按核心领域组织,每个领域都包含代码示例(良好/不良模式)。请根据适用示例应用建议。

约束

应用任何并发改动前,确保项目可以编译。如果编译失败,立即停止——编译失败属于阻塞条件。完成改进后,运行完整验证。

  • 强制要求:进行任何改动前,先运行 ./mvnw compile 或 mvn compile
  • 安全要求:如果编译失败,立即停止——编译失败属于阻塞条件,必须停止后续处理
  • 验证要求:应用改进后,运行 ./mvnw clean verify 或 mvn clean verify
  • 应用前:阅读参考文档,了解每种并发模式的良好/不良示例、约束和安全措施

何时使用此技能

  • 审查 Java 并发代码
  • 审查 Java 代码的线程安全性
  • 修复 Java 并发代码中的竞态条件
  • 选择 Java 中的 ExecutorService 或虚拟线程
  • 改进同步机制和共享可变状态处理
  • 对相关 Java 子任务应用结构化并发

工作流

  1. 在并发改动前编译项目

运行 ./mvnw compile 或 mvn compile;如果编译失败,立即停止。

  1. 阅读并发参考文档并分析热点

阅读 references/125-java-concurrency.md,找出需要解决的线程安全、协调和吞吐量问题。

  1. 应用并发改进

实现合适的并发模式、适用于相关子任务的结构化任务作用域、取消处理规范,以及适合用途的原语。

  1. 通过完整构建进行验证

应用改进后,运行 ./mvnw clean verify 或 mvn clean verify。

参考

如需了解详细指导、示例和约束,请参阅 references/125-java-concurrency.md。

评论

支持 Markdown