Go-Konkurrenzmuster. Verwenden Sie dies beim Schreiben oder Überprüfen von nebenläufigem Go-Code, der Goroutinen, Channels, Select, Locks, Sync-Primitiven, errgroup, singleflight, Worker-Pools oder Fan-Out/Fan-In-Pipelines umfasst. Wird auch ausgelöst, wenn Sie Goroutine-Leaks, Race Conditions, Channel-Besitzprobleme erkennen oder zwischen Channels und Mutexen wählen müssen.
Was ist golang-concurrency?
Dieses Skill-Paket bietet eine umfassende Sammlung von Go-Konkurrenzmustern, die auf gängigen Bibliotheken wie `errgroup` (x/sync), `singleflight` (x/sync) und nativen Go-Primitiven (`sync.Mutex`, `sync.WaitGroup`, `sync.Once`, `sync.Pool`, `sync.Map`, `sync.Cond`, `sync/atomic`) basieren. Es deckt alle wichtigen Muster ab: einfache Goroutinen, benannte Goroutinen, Channels (unbuffered, buffered, Richtungen), Select, Timeouts, Ticker/Timer, Fan-Out/Fan-In, Worker-Pools, Notifications, Toggle, Teardown, Shutdown, Errgroup (parallele Aufgaben, Cancel, WaitGroup+Fehler), Singleflight (Deduplizierung von Aufrufen), generische Hilfsfunktionen (Map, Reduce, Filter, Merge, Parallel), Merge-Channels, Channel-Besitz, WaitGroup/Nebenläufigkeitsbegrenzung, Atomare Operationen (AtomicInt, AtomicFloat64, AtomicString, AtomicValue, AtomicBoolean, AtomicMap, IntegralAtomic, InlineAtomic, AtomicMapString), Mutex & RWMutex, Cond (signalisieren, broadcasten), Pool (Objektpool), Once (Einmalige Initialisierung), Map (nebenläufige Map), MapReduce (MapReduce mit Result/Error), Broadcast, DebounceFirst, DebounceLast, DebounceLeader, Retry, Pipeline, Goroutine-Leak-Erkennung, Race-Condition-Erkennung, Channel-Besitzregeln und Entscheidungshilfe zwischen Channels und Mutexen. Dieses Skill ist besonders nützlich für Entwickler, die zuverlässige, wartbare und leistungsstarke nebenläufige Go-Programme schreiben, indem es Best Practices, typische Fallstricke und wiederverwendbare Muster bereitstellt.