java-concurrency

pluginagentmarketplace's avatarfrom pluginagentmarketplace

Master Java concurrency - threads, executors, locks, CompletableFuture, virtual threads

⭐1stars🔀0forks📁View on GitHub🕐Updated Dec 31, 2025

When & Why to Use This Skill

This Claude skill empowers developers to master Java concurrency, providing expert guidance on building thread-safe, high-performance applications. It covers the full spectrum of Java multi-threading, from traditional synchronization and Executor services to modern asynchronous patterns with CompletableFuture and the latest Java 21 Virtual Threads for scalable parallel processing.

Use Cases

  • Implementing high-performance parallel processing using Java 21 Virtual Threads to handle thousands of concurrent tasks efficiently.
  • Designing thread-safe data structures and managing complex synchronization using ReentrantLocks, volatile keywords, and Atomic variables.
  • Optimizing application throughput and resource management by configuring and tuning ThreadPoolExecutors and ForkJoinPools.
  • Building non-blocking asynchronous workflows and reactive-style pipelines using CompletableFuture chaining and robust exception handling.
  • Identifying and resolving critical concurrency bottlenecks, including deadlocks, race conditions, and thread starvation in legacy Java codebases.
namejava-concurrency
descriptionMaster Java concurrency - threads, executors, locks, CompletableFuture, virtual threads
sasmp_version"1.3.0"
version"3.0.0"
bonded_agent02-java-advanced
bond_typePRIMARY_BOND
allowed-toolsRead, Write, Bash, Glob, Grep
typestring
enum[threads, executors, virtual_threads, reactive]
default"21"

Java Concurrency Skill

Master Java concurrency patterns for thread-safe applications.

Overview

This skill covers concurrency from basic threads to virtual threads (Java 21+), including thread pools, synchronization, and CompletableFuture.

When to Use This Skill

Use when you need to:

  • Write thread-safe code
  • Implement parallel processing
  • Use async programming patterns
  • Tune thread pools
  • Debug concurrency issues

Topics Covered

Thread Management

  • Thread lifecycle and states
  • Daemon vs user threads
  • Interrupt handling

Synchronization

  • synchronized, volatile
  • Lock interfaces (ReentrantLock)
  • Atomic operations

Executors

  • ThreadPoolExecutor configuration
  • ForkJoinPool
  • Virtual Threads (Java 21+)

CompletableFuture

  • Async execution
  • Chaining and composition
  • Exception handling

Quick Reference

// 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();
    }
}

Thread Pool Sizing

Workload Formula Example
CPU-bound cores 8 threads
I/O-bound cores * (1 + wait/compute) 80 threads

Troubleshooting

Problem Cause Solution
Deadlock Circular lock Lock ordering, tryLock
Race condition Missing sync Add locks/atomics
Thread starvation Unfair scheduling Fair locks

Debug Commands

jstack -l <pid> > threaddump.txt
jcmd <pid> Thread.print

Usage

Skill("java-concurrency")