Wprowadzenie
Concurrency (Współbieżność) to zdolność programu lub systemu do rozpoczynania, wykonywania i kończenia wielu zadań w nakładających się okresach czasu. Nie oznacza to koniecznie, że zadania wykonują się jednocześnie (to jest Parallelism).
Concurrency vs Parallelism
- Concurrency – zadania nakładają się w czasie (mogą współdzielić jeden rdzeń procesora)
- Parallelism – zadania wykonują się dosłownie jednocześnie na wielu rdzeniach
Modele współbieżności
- Threads / Multithreading (Java, C++, Python threading)
- Async / Event Loop (JavaScript, Node.js, async/await)
- Actor Model (Erlang, Akka, Elixir)
- Communicating Sequential Processes (CSP) (Go – goroutines + channels)
- Coroutines / Fibers
Główne problemy współbieżności
- Race Condition – wynik zależy od kolejności wykonania
- Deadlock – dwa wątki czekają na siebie nawzajem
- Livelock
- Starvation
- Resource Contention
Narzędzia i techniki
- Mutexy, Semafory, Locki
- Atomic operations
- Immutable data + message passing
- Transaction Memory
- Software Transactional Memory (STM)
Znaczenie w AI i systemach rozproszonych
Współbieżność jest kluczowa przy trenowaniu modeli (Data Parallelism, Model Parallelism), obsłudze milionów zapytań jednocześnie (LLM inference) oraz w systemach rozproszonych.
Aktualny stan (2026)
Języki takie jak Go, Rust i Elixir są bardzo cenione właśnie za świetne wsparcie dla concurrency. W świecie AI coraz popularniejsze stają się frameworki umożliwiające efektywne współbieżne inferencję (vLLM, TensorRT-LLM, Outlines).
Powiązane pojęcia
Parallelism • Race Condition • Deadlock • Goroutines • Async/Await • Actor Model • Thread • Process • Distributed Systems
Dodano: 17 maja 2026