← ClaudeAtlas

concurrency-reviewlisted

Review Java concurrency code for thread safety, race conditions, deadlocks, and modern patterns (Virtual Threads, CompletableFuture, @Async). Use when user asks "check thread safety", "concurrency review", "async code review", or when reviewing multi-threaded code.
decebals/claude-code-java · ★ 599 · Code & Development · score 82
Install: claude install-skill decebals/claude-code-java
# Concurrency Review Skill Review Java concurrent code for correctness, safety, and modern best practices. ## Why This Matters > Nearly 60% of multithreaded applications encounter issues due to improper management of shared resources. - ACM Study Concurrency bugs are: - **Hard to reproduce** - timing-dependent - **Hard to test** - may only appear under load - **Hard to debug** - non-deterministic behavior This skill helps catch issues **before** they reach production. ## When to Use - Reviewing code with `synchronized`, `volatile`, `Lock` - Checking `@Async`, `CompletableFuture`, `ExecutorService` - Validating thread safety of shared state - Reviewing Virtual Threads / Structured Concurrency code - Any code accessed by multiple threads --- ## Modern Java (21/25): Virtual Threads ### When to Use Virtual Threads ```java // ✅ Perfect for I/O-bound tasks (HTTP, DB, file I/O) try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) { for (Request request : requests) { executor.submit(() -> callExternalApi(request)); } } // ❌ Not beneficial for CPU-bound tasks // Use platform threads / ForkJoinPool instead ``` **Rule of thumb**: If your app never has 10,000+ concurrent tasks, virtual threads may not provide significant benefit. ### Java 25: Synchronized Pinning Fixed In Java 21-23, virtual threads became "pinned" when entering `synchronized` blocks with blocking operations. **Java 25 fixes this** (JEP 491). ```java // In Java 21-23