| ABA problem |
ABA problem |
Hazards |
| abandoned mutex |
Lock poisoning |
Synchronization |
| ACID |
Consistency models |
Distributed systems |
| Actor model |
Actor model |
Communication |
| actors |
Actor model |
Communication |
| AddressSanitizer |
Memory error detector |
Testing and tools |
| Amdahl's law |
Speedup and Amdahl's law |
Foundations |
| ASan |
Memory error detector |
Testing and tools |
| asymmetric coroutine |
Coroutine |
Units of execution |
| async |
Asynchrony |
Foundations |
| Async and await |
Async and await |
Async |
| async function |
Async and await |
Async |
| Async functions as state machines |
Async functions as state machines |
Async |
| async generator |
Async stream |
Async |
| Async runtime (executor and reactor) |
Async runtime (executor and reactor) |
Scheduling |
| Async stream |
Async stream |
Async |
| async-signal-safe |
Reentrancy |
Safety in languages |
| async/await |
Async and await |
Async |
| asynchronous channel |
Buffered and bounded channels |
Communication |
| asynchronous programming |
Asynchrony |
Foundations |
| Asynchrony |
Asynchrony |
Foundations |
| asyncio event loop |
Async runtime (executor and reactor) |
Scheduling |
| AsyncIterator |
Async stream |
Async |
| atomic consistency |
Linearizability |
Safety in languages |
| atomic integer |
Atomic variable |
Lock-free |
| Atomic variable |
Atomic variable |
Lock-free |
| atomics |
Atomic variable |
Lock-free |
| await |
Join |
Async |
| await point |
Suspension point |
Scheduling |
| background thread |
Daemon and detached threads |
Units of execution |
| Backpressure |
Backpressure |
Communication |
| Barrier |
Barrier |
Synchronization |
| BASE |
Consistency models |
Distributed systems |
| binary semaphore |
Semaphore |
Synchronization |
| Blocking and non-blocking calls |
Blocking and non-blocking calls |
Foundations |
| blocking I/O |
Blocking and non-blocking calls |
Foundations |
| blocking in async code |
Blocking the event loop |
Async |
| Blocking the event loop |
Blocking the event loop |
Async |
| bounded queue |
Buffered and bounded channels |
Communication |
| bounded-buffer problem |
Producer-consumer |
Communication |
| broadcast channel |
Publish-subscribe and broadcast |
Communication |
| Buffered and bounded channels |
Buffered and bounded channels |
Communication |
| buffered channel |
Buffered and bounded channels |
Communication |
| Busy waiting |
Busy waiting |
Scheduling |
| Cache coherence |
Cache coherence |
Parallelism |
| cache invalidation |
Cache coherence |
Parallelism |
| cache line contention |
False sharing |
Hazards |
| call_once |
Run-once initialization |
Synchronization |
| Callback |
Callback |
Async |
| callback hell |
Callback |
Async |
| Cancellation |
Cancellation |
Async |
| cancellation token |
Cancellation |
Async |
| CAS |
Compare-and-swap |
Lock-free |
| Celery |
Task queue |
Communication |
| Channel |
Channel |
Communication |
| check-then-act |
Time of check to time of use |
Hazards |
| checkpointing |
Durable execution |
Distributed systems |
| Child process |
Child process |
Units of execution |
| Classic synchronization problems |
Classic synchronization problems |
Synchronization |
| clock drift |
Clock skew and drift |
Distributed systems |
| Clock skew and drift |
Clock skew and drift |
Distributed systems |
| clock synchronization |
Clock skew and drift |
Distributed systems |
| coarse-grained |
Granularity |
Foundations |
| Communicating sequential processes |
Communicating sequential processes |
Communication |
| communication primitives |
Concurrency primitives |
Foundations |
| compare-and-set |
Compare-and-swap |
Lock-free |
| Compare-and-swap |
Compare-and-swap |
Lock-free |
| compare-exchange |
Compare-and-swap |
Lock-free |
| compiler reordering |
Weak memory models and reordering |
Hazards |
| completion handler |
Callback |
Async |
| Concurrency |
Concurrency |
Foundations |
| Concurrency models |
Concurrency models |
Foundations |
| Concurrency primitives |
Concurrency primitives |
Foundations |
| concurrent collections |
Concurrent data structures |
Lock-free |
| concurrent computing |
Concurrency |
Foundations |
| Concurrent data structures |
Concurrent data structures |
Lock-free |
| concurrent programming |
Concurrency |
Foundations |
| ConcurrentHashMap |
Concurrent data structures |
Lock-free |
| Condition variable |
Condition variable |
Synchronization |
| condvar |
Condition variable |
Synchronization |
| confinement |
Thread confinement |
Safety in languages |
| Consensus |
Consensus |
Distributed systems |
| Consistency models |
Consistency models |
Distributed systems |
| Contention |
Contention |
Hazards |
| contention profiling |
Profiling concurrent programs |
Testing and tools |
| context cancellation |
Cancellation |
Async |
| Context switch |
Context switch |
Units of execution |
| cooperative multitasking |
Cooperative scheduling |
Scheduling |
| Cooperative scheduling |
Cooperative scheduling |
Scheduling |
| coordination |
Synchronization |
Synchronization |
| copy-on-write |
Read-copy-update |
Lock-free |
| Coroutine |
Coroutine |
Units of execution |
| coroutines (C++20) |
Async and await |
Async |
| CountdownEvent |
Latch |
Synchronization |
| CountDownLatch |
Latch |
Synchronization |
| counting semaphore |
Semaphore |
Synchronization |
| CPU-bound |
I/O-bound and CPU-bound work |
Foundations |
| critical region |
Critical section |
Synchronization |
| Critical section |
Critical section |
Synchronization |
| CSP |
Communicating sequential processes |
Communication |
| CUDA |
GPU computing |
Parallelism |
| CyclicBarrier |
Barrier |
Synchronization |
| Daemon and detached threads |
Daemon and detached threads |
Units of execution |
| daemon thread |
Daemon and detached threads |
Units of execution |
| Dangling pointer |
Dangling pointer |
Hazards |
| data inconsistency |
Safety failure |
Hazards |
| Data parallelism |
Data parallelism |
Parallelism |
| Data race |
Data race |
Hazards |
| Data-race freedom by construction |
Data-race freedom by construction |
Safety in languages |
| Dataflow programming |
Dataflow programming |
Communication |
| deadline |
Timeout |
Async |
| deadline scheduling |
Earliest deadline first |
Real-time systems |
| Deadlock |
Deadlock |
Hazards |
| deadlock detection |
Debugging concurrent programs |
Testing and tools |
| deadly embrace |
Deadlock |
Hazards |
| Debugging concurrent programs |
Debugging concurrent programs |
Testing and tools |
| defer unlock |
Scoped locking |
Synchronization |
| deferred |
Future and promise |
Async |
| detach |
Detached thread |
Units of execution |
| detached thread |
Daemon and detached threads |
Units of execution |
| Detached thread |
Detached thread |
Units of execution |
| Deterministic scheduling for tests |
Deterministic scheduling for tests |
Testing and tools |
| deterministic simulation |
Deterministic scheduling for tests |
Testing and tools |
| dining philosophers |
Classic synchronization problems |
Synchronization |
| distributed async await |
Durable execution |
Distributed systems |
| Distributed computing |
Distributed computing |
Distributed systems |
| distributed platform |
Distributed computing |
Distributed systems |
| distributed systems |
Distributed computing |
Distributed systems |
| divide and conquer in parallel |
Fork-join |
Parallelism |
| double-checked locking |
Run-once initialization |
Synchronization |
| Durable execution |
Durable execution |
Distributed systems |
| Earliest deadline first |
Earliest deadline first |
Real-time systems |
| EDF |
Earliest deadline first |
Real-time systems |
| epoll |
I/O multiplexing |
Scheduling |
| Escape analysis |
Escape analysis |
Safety in languages |
| escapes to heap |
Escape analysis |
Safety in languages |
| event dispatch thread |
UI thread |
Units of execution |
| Event loop |
Event loop |
Scheduling |
| event-driven architecture |
Event-driven programming |
Async |
| Event-driven programming |
Event-driven programming |
Async |
| eventual consistency |
Consistency models |
Distributed systems |
| exclusive access |
Mutual exclusion |
Synchronization |
| executor |
Async runtime (executor and reactor) |
Scheduling |
| executor |
Thread pool and executor |
Units of execution |
| ExecutorService |
Thread pool and executor |
Units of execution |
| extent |
Object lifetime |
Safety in languages |
| external consistency |
Consistency models |
Distributed systems |
| fairness |
Starvation |
Hazards |
| False sharing |
False sharing |
Hazards |
| Fan-out, fan-in |
Fan-out, fan-in |
Communication |
| fast user-space mutex |
Futex |
Synchronization |
| Fiber |
Fiber |
Units of execution |
| fine-grained |
Granularity |
Foundations |
| fire and forget |
Detached thread |
Units of execution |
| flaky concurrency bug |
Heisenbug |
Hazards |
| flow control |
Backpressure |
Communication |
| flow graph |
Dataflow programming |
Communication |
| fork and exec |
Child process |
Units of execution |
| Fork-join |
Fork-join |
Parallelism |
| ForkJoinPool |
Fork-join |
Parallelism |
| free threading |
Global interpreter lock |
Parallelism |
| Function coloring |
Function coloring |
Async |
| Futex |
Futex |
Synchronization |
| future |
Future and promise |
Async |
| Future and promise |
Future and promise |
Async |
| gen_server |
OTP behaviours |
Communication |
| general race |
Race condition |
Hazards |
| generator |
Coroutine |
Units of execution |
| GenServer |
OTP behaviours |
Communication |
| GIL |
Global interpreter lock |
Parallelism |
| Global interpreter lock |
Global interpreter lock |
Parallelism |
| go -race |
Race detector |
Testing and tools |
| Go memory model |
Happens-before |
Lock-free |
| Goroutine |
Goroutine |
Units of execution |
| goroutine dump |
Debugging concurrent programs |
Testing and tools |
| goroutine leak |
Leaked tasks |
Hazards |
| GPGPU |
GPU computing |
Parallelism |
| GPU computing |
GPU computing |
Parallelism |
| Granularity |
Granularity |
Foundations |
| Green threads and M:N scheduling |
Green threads and M:N scheduling |
Units of execution |
| guarded block |
Condition variable |
Synchronization |
| GUI thread |
UI thread |
Units of execution |
| Gustafson's law |
Speedup and Amdahl's law |
Foundations |
| GVL |
Global interpreter lock |
Parallelism |
| Happens-before |
Happens-before |
Lock-free |
| hard real-time |
Real-time system |
Real-time systems |
| Hazard pointers |
Hazard pointers |
Lock-free |
| Heisenbug |
Heisenbug |
Hazards |
| Helgrind |
Race detector |
Testing and tools |
| Hyper-Threading |
Simultaneous multithreading |
Parallelism |
| I/O multiplexing |
I/O multiplexing |
Scheduling |
| I/O-bound |
I/O-bound and CPU-bound work |
Foundations |
| I/O-bound and CPU-bound work |
I/O-bound and CPU-bound work |
Foundations |
| Idempotency |
Idempotency |
Distributed systems |
| idempotent |
Idempotency |
Distributed systems |
| Immutability |
Immutability |
Safety in languages |
| immutable object |
Immutability |
Safety in languages |
| Inter-process communication |
Inter-process communication |
Communication |
| interference |
Race condition |
Hazards |
| Interior mutability |
Interior mutability |
Safety in languages |
| Interleaving |
Interleaving |
Foundations |
| Interlocked |
Atomic variable |
Lock-free |
| interval |
Timers and tickers |
Async |
| intrinsic lock |
Monitor |
Synchronization |
| IOCP |
I/O multiplexing |
Scheduling |
| IPC |
Inter-process communication |
Communication |
| Java Memory Model |
Happens-before |
Lock-free |
| jcstress |
Stress testing |
Testing and tools |
| job queue |
Task queue |
Communication |
| Join |
Join |
Async |
| join handle |
Join |
Async |
| JoinHandle |
Join |
Async |
| kqueue |
I/O multiplexing |
Scheduling |
| Lamport clock |
Logical clocks |
Distributed systems |
| Latch |
Latch |
Synchronization |
| lazy initialization |
Run-once initialization |
Synchronization |
| Leaked tasks |
Leaked tasks |
Hazards |
| let it crash |
Supervision |
Communication |
| lifetime |
Object lifetime |
Safety in languages |
| lightweight threads |
Green threads and M:N scheduling |
Units of execution |
| Lincheck |
Model checking |
Testing and tools |
| Linearizability |
Linearizability |
Safety in languages |
| Livelock |
Livelock |
Hazards |
| Liveness failure |
Liveness failure |
Hazards |
| liveness property |
Safety and liveness |
Hazards |
| lock |
Mutex |
Synchronization |
| lock contention |
Contention |
Hazards |
| lock guard |
Scoped locking |
Synchronization |
| lock hierarchy |
Lock ordering |
Synchronization |
| Lock ordering |
Lock ordering |
Synchronization |
| Lock poisoning |
Lock poisoning |
Synchronization |
| Lock-free |
Lock-free |
Lock-free |
| lock_guard |
Scoped locking |
Synchronization |
| lockless |
Lock-free |
Lock-free |
| Logical clocks |
Logical clocks |
Distributed systems |
| loom |
Deterministic scheduling for tests |
Testing and tools |
| lost update |
Safety failure |
Hazards |
| M:N threading |
Green threads and M:N scheduling |
Units of execution |
| mailbox |
Actor model |
Communication |
| main thread |
UI thread |
Units of execution |
| Map-reduce |
Map-reduce |
Parallelism |
| MapReduce |
Map-reduce |
Parallelism |
| Memcheck |
Memory error detector |
Testing and tools |
| Memory error detector |
Memory error detector |
Testing and tools |
| memory leak |
Leaked tasks |
Hazards |
| memory model |
Happens-before |
Lock-free |
| message broker |
Publish-subscribe and broadcast |
Communication |
| message loop |
Event loop |
Scheduling |
| Message passing |
Message passing |
Communication |
| Message Passing Interface |
MPI |
Parallelism |
| mission-critical system |
Real-time system |
Real-time systems |
| Model checking |
Model checking |
Testing and tools |
| Monitor |
Monitor |
Synchronization |
| moved to heap |
Escape analysis |
Safety in languages |
| MPI |
MPI |
Parallelism |
| mpsc |
Channel |
Communication |
| MT-safe |
Thread safety |
Safety in languages |
| Multi-version concurrency control |
Multi-version concurrency control |
Distributed systems |
| Multiprocessing |
Multiprocessing |
Parallelism |
| Multitasking |
Multitasking |
Foundations |
| multithreading |
Thread |
Units of execution |
| Mutex |
Mutex |
Synchronization |
| mutex profile |
Profiling concurrent programs |
Testing and tools |
| Mutual exclusion |
Mutual exclusion |
Synchronization |
| mutual exclusion lock |
Mutex |
Synchronization |
| MVCC |
Multi-version concurrency control |
Distributed systems |
| non-blocking algorithm |
Lock-free |
Lock-free |
| non-blocking I/O |
Blocking and non-blocking calls |
Foundations |
| non-deterministic behaviour |
Nondeterminism |
Foundations |
| non-preemptive scheduling |
Cooperative scheduling |
Scheduling |
| non-uniform memory access |
NUMA |
Parallelism |
| Nondeterminism |
Nondeterminism |
Foundations |
| NTP |
Clock skew and drift |
Distributed systems |
| NUMA |
NUMA |
Parallelism |
| nursery |
Structured concurrency |
Async |
| Object lifetime |
Object lifetime |
Safety in languages |
| observables |
Reactive programming |
Async |
| OMP |
OpenMP |
Parallelism |
| OnceLock |
Run-once initialization |
Synchronization |
| OpenMP |
OpenMP |
Parallelism |
| OS process |
Process |
Units of execution |
| OS thread |
Thread |
Units of execution |
| OTP |
OTP behaviours |
Communication |
| OTP behaviours |
OTP behaviours |
Communication |
| Oversubscription |
Oversubscription |
Foundations |
| ownership by one thread |
Thread confinement |
Safety in languages |
| Parallel algorithms |
Parallel algorithms |
Parallelism |
| parallel computing |
Parallelism |
Foundations |
| parallel execution |
Parallelism |
Foundations |
| Parallel iterators and streams |
Parallel iterators and streams |
Parallelism |
| Parallel prefix sum |
Parallel prefix sum |
Parallelism |
| parallel search |
Parallel algorithms |
Parallelism |
| parallel sort |
Parallel algorithms |
Parallelism |
| parallel streams |
Parallel iterators and streams |
Parallelism |
| Parallelism |
Parallelism |
Foundations |
| parallelism models |
Concurrency models |
Foundations |
| Partial failure |
Partial failure |
Distributed systems |
| Paxos |
Consensus |
Distributed systems |
| performance tuning |
Profiling concurrent programs |
Testing and tools |
| persistent data structure |
Immutability |
Safety in languages |
| Pin |
Pinning |
Async |
| Pinning |
Pinning |
Async |
| Pipeline |
Pipeline |
Communication |
| pipes |
Inter-process communication |
Communication |
| pipes and filters |
Pipeline |
Communication |
| platform thread |
Thread |
Units of execution |
| PLINQ |
Parallel iterators and streams |
Parallelism |
| poisoned mutex |
Lock poisoning |
Synchronization |
| poll |
Polling |
Scheduling |
| poll(2) |
I/O multiplexing |
Scheduling |
| Polling |
Polling |
Scheduling |
| preemption |
Preemptive scheduling |
Scheduling |
| preemptive multitasking |
Preemptive scheduling |
Scheduling |
| Preemptive scheduling |
Preemptive scheduling |
Scheduling |
| prefix scan |
Parallel prefix sum |
Parallelism |
| Priority inversion |
Priority inversion |
Hazards |
| Process |
Process |
Units of execution |
| process pool |
Multiprocessing |
Parallelism |
| process scheduler |
Scheduler |
Scheduling |
| ProcessPoolExecutor |
Multiprocessing |
Parallelism |
| Producer-consumer |
Producer-consumer |
Communication |
| producer-consumer problem |
Producer-consumer |
Communication |
| Profiling concurrent programs |
Profiling concurrent programs |
Testing and tools |
| Project Loom |
Virtual thread |
Units of execution |
| promise |
Future and promise |
Async |
| PTP |
Clock skew and drift |
Distributed systems |
| pub/sub |
Publish-subscribe and broadcast |
Communication |
| Publish-subscribe and broadcast |
Publish-subscribe and broadcast |
Communication |
| queue |
Channel |
Communication |
| race |
Race condition |
Hazards |
| race |
Select |
Communication |
| Race condition |
Race condition |
Hazards |
| Race detector |
Race detector |
Testing and tools |
| Raft |
Consensus |
Distributed systems |
| RAII guard |
Scoped locking |
Synchronization |
| Rate-monotonic scheduling |
Rate-monotonic scheduling |
Real-time systems |
| rayon |
Parallel iterators and streams |
Parallelism |
| RCU |
Read-copy-update |
Lock-free |
| Reactive Extensions |
Reactive programming |
Async |
| Reactive programming |
Reactive programming |
Async |
| ReactiveX |
Reactive programming |
Async |
| reactor |
Async runtime (executor and reactor) |
Scheduling |
| Read-copy-update |
Read-copy-update |
Lock-free |
| Read-write lock |
Read-write lock |
Synchronization |
| readers-writer lock |
Read-write lock |
Synchronization |
| readers-writers problem |
Classic synchronization problems |
Synchronization |
| Real-time system |
Real-time system |
Real-time systems |
| recursive lock |
Reentrant lock |
Synchronization |
| recursive mutex |
Reentrant lock |
Synchronization |
| Reentrancy |
Reentrancy |
Safety in languages |
| reentrant function |
Reentrancy |
Safety in languages |
| Reentrant lock |
Reentrant lock |
Synchronization |
| remote method invocation |
Remote procedure call |
Distributed systems |
| Remote procedure call |
Remote procedure call |
Distributed systems |
| rendezvous |
Barrier |
Synchronization |
| rendezvous channel |
Unbuffered channel |
Communication |
| resource race |
Race condition |
Hazards |
| resource starvation |
Starvation |
Hazards |
| resume semantics |
Durable execution |
Distributed systems |
| RLock |
Reentrant lock |
Synchronization |
| RMI |
Remote procedure call |
Distributed systems |
| RMS |
Rate-monotonic scheduling |
Real-time systems |
| RPC |
Remote procedure call |
Distributed systems |
| run loop |
Event loop |
Scheduling |
| Run-once initialization |
Run-once initialization |
Synchronization |
| RwLock |
Read-write lock |
Synchronization |
| RWMutex |
Read-write lock |
Synchronization |
| Rx |
Reactive programming |
Async |
| safe memory reclamation |
Hazard pointers |
Lock-free |
| Safety and liveness |
Safety and liveness |
Hazards |
| Safety failure |
Safety failure |
Hazards |
| safety property |
Safety and liveness |
Hazards |
| scan |
Parallel prefix sum |
Parallelism |
| Scheduler |
Scheduler |
Scheduling |
| scheduling algorithm |
Scheduling policy |
Scheduling |
| Scheduling policy |
Scheduling policy |
Scheduling |
| Scoped locking |
Scoped locking |
Synchronization |
| Scoped thread |
Scoped thread |
Units of execution |
| Select |
Select |
Communication |
| select! |
Select |
Communication |
| select(2) |
I/O multiplexing |
Scheduling |
| Semaphore |
Semaphore |
Synchronization |
| Send and Sync |
Send and Sync |
Safety in languages |
| Sendable |
Send and Sync |
Safety in languages |
| SeqCst |
Sequential consistency |
Safety in languages |
| Sequential consistency |
Sequential consistency |
Safety in languages |
| Sequential execution |
Sequential execution |
Foundations |
| sequential programming |
Sequential execution |
Foundations |
| serial execution |
Sequential execution |
Foundations |
| setTimeout |
Timers and tickers |
Async |
| shared lock |
Read-write lock |
Synchronization |
| Shared memory |
Shared memory |
Communication |
| shared-exclusive lock |
Read-write lock |
Synchronization |
| shared_mutex |
Read-write lock |
Synchronization |
| SIGINT |
Signals |
Communication |
| signal handler |
Signals |
Communication |
| signals |
Inter-process communication |
Communication |
| Signals |
Signals |
Communication |
| SIGPIPE |
Signals |
Communication |
| SIMD |
SIMD |
Parallelism |
| Simultaneous multithreading |
Simultaneous multithreading |
Parallelism |
| single instruction, multiple data |
SIMD |
Parallelism |
| Sink |
Async stream |
Async |
| sleeping barber problem |
Classic synchronization problems |
Synchronization |
| SMT |
Simultaneous multithreading |
Parallelism |
| snapshot isolation |
Multi-version concurrency control |
Distributed systems |
| soft real-time |
Real-time system |
Real-time systems |
| software transactional memory |
Transactional memory |
Lock-free |
| spawn |
Child process |
Units of execution |
| spawned future |
Task (async) |
Units of execution |
| speedup |
Speedup and Amdahl's law |
Foundations |
| Speedup and Amdahl's law |
Speedup and Amdahl's law |
Foundations |
| SPIN |
Model checking |
Testing and tools |
| spin lock |
Spinlock |
Synchronization |
| spin loop |
Busy waiting |
Scheduling |
| spin-wait |
Spinlock |
Synchronization |
| spin-waiting |
Busy waiting |
Scheduling |
| Spinlock |
Spinlock |
Synchronization |
| spinning |
Busy waiting |
Scheduling |
| spurious wakeup |
Condition variable |
Synchronization |
| stack dump |
Debugging concurrent programs |
Testing and tools |
| stackful coroutine |
Fiber |
Units of execution |
| stackless coroutine |
Coroutine |
Units of execution |
| Starvation |
Starvation |
Hazards |
| std::latch |
Latch |
Synchronization |
| std::sync::Barrier |
Barrier |
Synchronization |
| STM |
Transactional memory |
Lock-free |
| stop token |
Cancellation |
Async |
| storage duration |
Object lifetime |
Safety in languages |
| store buffering |
Weak memory models and reordering |
Hazards |
| Stream |
Async stream |
Async |
| Stress testing |
Stress testing |
Testing and tools |
| strong consistency |
Linearizability |
Safety in languages |
| Structured concurrency |
Structured concurrency |
Async |
| structured thread |
Scoped thread |
Units of execution |
| subprocess |
Child process |
Units of execution |
| Supervision |
Supervision |
Communication |
| supervision tree |
Supervision |
Communication |
| Suspension point |
Suspension point |
Scheduling |
| symmetric coroutine |
Coroutine |
Units of execution |
| sync and async functions |
Function coloring |
Async |
| sync.Once |
Run-once initialization |
Synchronization |
| Synchronization |
Synchronization |
Synchronization |
| synchronization mechanisms |
Synchronization |
Synchronization |
| synchronization primitives |
Concurrency primitives |
Foundations |
| synchronization primitives |
Synchronization |
Synchronization |
| synchronized |
Monitor |
Synchronization |
| synchronized before |
Happens-before |
Lock-free |
| synchronized channel |
Unbuffered channel |
Communication |
| synchronous and asynchronous calls |
Blocking and non-blocking calls |
Foundations |
| synchronous channel |
Unbuffered channel |
Communication |
| synctest |
Deterministic scheduling for tests |
Testing and tools |
| task |
Task (async) |
Units of execution |
| Task |
Future and promise |
Async |
| Task (async) |
Task (async) |
Units of execution |
| task granularity |
Granularity |
Foundations |
| task group |
Structured concurrency |
Async |
| Task parallelism |
Task parallelism |
Parallelism |
| Task queue |
Task queue |
Communication |
| task switch |
Context switch |
Units of execution |
| the concurrency landscape |
Concurrency models |
Foundations |
| Thread |
Thread |
Units of execution |
| Thread confinement |
Thread confinement |
Safety in languages |
| thread dump |
Debugging concurrent programs |
Testing and tools |
| thread leak |
Leaked tasks |
Hazards |
| thread of execution |
Thread |
Units of execution |
| thread pool |
Worker pool |
Communication |
| Thread pool and executor |
Thread pool and executor |
Units of execution |
| Thread safety |
Thread safety |
Safety in languages |
| thread scheduler |
Scheduler |
Scheduling |
| thread starvation |
Starvation |
Hazards |
| thread-local storage |
Thread confinement |
Safety in languages |
| Thread-local storage |
Thread-local storage |
Units of execution |
| thread-local variable |
Thread-local storage |
Units of execution |
| thread-safe |
Thread safety |
Safety in languages |
| thread-safe containers |
Concurrent data structures |
Lock-free |
| thread-specific data |
Thread-local storage |
Units of execution |
| thread::scope |
Scoped thread |
Units of execution |
| ThreadPoolExecutor |
Thread pool and executor |
Units of execution |
| ThreadSanitizer |
Race detector |
Testing and tools |
| ticker |
Timers and tickers |
Async |
| Time of check to time of use |
Time of check to time of use |
Hazards |
| Timeout |
Timeout |
Async |
| Timers and tickers |
Timers and tickers |
Async |
| timestamp ordering |
Logical clocks |
Distributed systems |
| TLA+ |
Model checking |
Testing and tools |
| TLS |
Thread-local storage |
Units of execution |
| TOCTOU |
Time of check to time of use |
Hazards |
| TOCTTOU |
Time of check to time of use |
Hazards |
| tokio |
Async runtime (executor and reactor) |
Scheduling |
| torn read |
Safety failure |
Hazards |
| TPL Dataflow |
Dataflow programming |
Communication |
| Transactional memory |
Transactional memory |
Lock-free |
| TrueTime |
Clock skew and drift |
Distributed systems |
| TSan |
Race detector |
Testing and tools |
| UB |
Undefined behaviour |
Hazards |
| UI thread |
UI thread |
Units of execution |
| unbounded channel |
Buffered and bounded channels |
Communication |
| Unbuffered channel |
Unbuffered channel |
Communication |
| undefined behavior |
Undefined behaviour |
Hazards |
| Undefined behaviour |
Undefined behaviour |
Hazards |
| Unix signals |
Signals |
Communication |
| Unpin |
Pinning |
Async |
| unsynchronized access |
Data race |
Hazards |
| use after free |
Dangling pointer |
Hazards |
| use after return |
Dangling pointer |
Hazards |
| use after scope |
Dangling pointer |
Hazards |
| user-space threads |
Green threads and M:N scheduling |
Units of execution |
| Valgrind |
Memory error detector |
Testing and tools |
| vector clock |
Logical clocks |
Distributed systems |
| vectorization |
SIMD |
Parallelism |
| Virtual thread |
Virtual thread |
Units of execution |
| virtual time |
Deterministic scheduling for tests |
Testing and tools |
| wait and notify |
Condition variable |
Synchronization |
| Wait-free |
Wait-free |
Lock-free |
| WaitGroup |
Join |
Async |
| WaitOnAddress |
Futex |
Synchronization |
| WCET |
Worst-case execution time |
Real-time systems |
| Weak memory models and reordering |
Weak memory models and reordering |
Hazards |
| weak ordering |
Weak memory models and reordering |
Hazards |
| what color is your function |
Function coloring |
Async |
| work queue |
Task queue |
Communication |
| Work stealing |
Work stealing |
Scheduling |
| work-stealing scheduler |
Work stealing |
Scheduling |
| Worker pool |
Worker pool |
Communication |
| workflow engine |
Durable execution |
Distributed systems |
| Worst-case execution time |
Worst-case execution time |
Real-time systems |
| write-back |
Cache coherence |
Parallelism |
| yield point |
Suspension point |
Scheduling |
| zombie thread |
Leaked tasks |
Hazards |