java-concurrency

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

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "java-concurrency" with this command: npx skills add pluginagentmarketplace/custom-plugin-java/pluginagentmarketplace-custom-plugin-java-java-concurrency

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

WorkloadFormulaExample
CPU-boundcores8 threads
I/O-boundcores * (1 + wait/compute)80 threads

Troubleshooting

ProblemCauseSolution
DeadlockCircular lockLock ordering, tryLock
Race conditionMissing syncAdd locks/atomics
Thread starvationUnfair schedulingFair locks

Debug Commands

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

Usage

Skill("java-concurrency")

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

java-spring-boot

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

java-testing

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

java-maven

No summary provided by upstream source.

Repository SourceNeeds Review