CPU//mutex//event loop
A single-threaded concurrency model — one core runs a loop that dispatches callbacks when I/O operations complete.
A single-threaded concurrency model — one core runs a loop that dispatches callbacks when I/O operations complete.
Avoids mutex contention entirely.
JavaScript (Node.js, browsers), Python asyncio, and Rust's tokio all use this pattern.
Non-blocking I/O calls (epoll, kqueue, IOCP) register interest, and the loop multiplexes thousands of concurrent connections without spawning threads.
Ideal for I/O-bound workloads — CPU-bound tasks block the loop and must be offloaded.