JavaScript Concurrency Model and Event Loop

Javascript runtime is single threaded which means that it can execute one piece of code at a time. In order to understand the concurrency model and the event loop in Javascript we have to first get to know some common terms that are associated with it.

The call stack

First let’s learn about what a call stack is.

function multiply(x,y) {
return x * y;
function squared(n) {
return multiply(n,n)
function printSquare(n) {
return squared(n)
let numberSquared = printSquare(5);
Event Loop Model

The browser

Now we know from this that Javascript can execute one thing at a time but that’s not the case with the Browser. The Browser has its own set of APIs like setTimeout and XMLHttpRequests which are not specified in the Javascript runtime.

console.log('hi');setTimeout(function() {

Software Developer