porque o JavaScript SetTimeout () não é multithreaded

Eu tenho um teste:

Html:

<div id="f1">Empty</div>
<div id="f2">Empty</div>

​

js:

var s1 = function() {
    for (i = 1; i < 1000000000; i++) {
        var b = i * i;
    }
    $('#f1').html('Set');
}

var s2 = function() {
    if ($('#f1').html() == 'Empty') {
        $('#f2').html('Multi Thread');
        return;            
    };
    $('#f2').html('One Thread');
}

setTimeout(s2,110);
setTimeout(s1,100);​

Existe alguma razão real por que setTimeOut () não é executado em segmentos diferentes, em vez como modelo de evento?

jsfiddle

questionAnswers(7)

yourAnswerToTheQuestion