JavaScript's Concurrency Model
The Event Loop
JavaScript is single-threaded but handles asynchronous tasks using the event loop.
- The event loop ensures non-blocking execution by managing async tasks.
- Synchronous code runs first, followed by queued async tasks.
- The event loop pulls tasks from the task queue when the call stack is empty.
console.log("Start");
setTimeout(() => {
console.log("Timeout");
}, 0);
console.log("End");
// Output:
// Start
// End
// Timeout (Runs last due to event loop)