setInterval does not start anything in another thread. He plans to start something at certain points in time if the JS runtime at this time does not work.
You can try this behavior like this:
setInterval(function(){ alert("Hello"); }, 1000); while (true) { }
An infinite loop will prevent the function from starting because JS runtime is stuck in the loop.
source share