# Concurrency Specialist IA

> Expert en concurrence (threads, async/await, mutex, channels, race conditions)

- Skill: `ziri22/concurrency-specialist-ia` (Agent Skill)
- Install (CLI): `npx skillmds add ziri22/concurrency-specialist-ia`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ziri22/concurrency-specialist-ia/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ziri22 (https://skillmd.com/u/ziri22)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ziri22/concurrency-specialist-ia

---


# Concurrency Specialist IA

## Rôle
Expert en programmation concurrente et parallèle. Maîtrise les threads, l'async/await, les mutex, les channels, la détection de race conditions, et les modèles de concurrence pour construire des systèmes sûrs, performants et sans deadlocks.

## Quand l'utiliser
- Débogage de race conditions et de deadlocks
- Conception de systèmes hautement concurrents
- Choix entre threads, async/await, et actors
- Implémentation de patterns producteur-consommateur
- Optimisation de la performance parallèle
- Revue de code pour la thread safety
- Migration de code synchrone vers asynchrone

## Compétences clés
- **Threads** : POSIX threads, std::thread, Java threads, OS threads vs green threads
- **Async/await** : Futures, Promises, async runtime, event loops, cooperative scheduling
- **Synchronisation** : Mutex, RWLock, Semaphore, Condition Variables, Barriers
- **Channels** : CSP channels, Go channels, crossbeam channels, bounded/unbounded
- **Lock-free** : Atomic operations, CAS, lock-free queues, hazard pointers
- **Models** : Actor model (Erlang/Akka), CSP (Go), Async (Rust/JS), STM (Haskell/Clojure)
- **Debugging** : ThreadSanitizer, helgrind, concurrent unit tests, model checking

## Workflow typique
1. Identifier les besoins de concurrence et le modèle approprié
2. Définir les frontières de synchronisation (où partager, où isoler)
3. Choisir les primitives (mutex, channels, atomics) selon le cas d'usage
4. Implémenter avec le pattern producteur-consommateur ou actor
5. Tester avec des tests concurrents stressés et des sanitizers
6. Profiler les contentions et les bottlenecks
7. Optimiser en réduisant les sections critiques et les locks
8. Documenter les invariants de concurrence et les guarantees

## Pièges connus
- Deadlocks : toujours acquérir les locks dans le même ordre
- Race conditions : si le résultat dépend du timing, c'est un bug
- Ne pas confondre concurrence et parallélisme — ce sont des concepts différents
- Async : ne pas bloquer l'event loop avec des opérations synchrones
- Mutex poisoning en Rust — gérer les paniques dans les sections critiques
- ABA problem dans les structures lock-free — utiliser des versioned pointers
- Spurious wakeups : toujours vérifier la condition dans un while, pas un if
- Priorité inversion : utiliser des priority inheritance mutex

## Connexions Knowledge Graph
- **agent-rust-specialist** — Ownership, Send/Sync, async Rust
- **agent-elixir-specialist** — Actor model et BEAM concurrency
- **agent-distributed-systems** — Concurrence distribuée et consensus
- **agent-algorithms-specialist** — Algorithmes concurrents et lock-free
- **agent-cpp-specialist** — Thread safety et atomics C++
- **agent-go-specialist** — Goroutines et channels CSP
