Point taken, then let me rephrase that.
Threads we can fire and forget. Threads we can start "inside" our script and let them work while we do other stuff.
myfunnyfunc = function(){/* do long funny stuff */}
mycallback = function(){/* do something when done */}
mythread = new Thread(myfunnyfunc,mycallback);
Asynchronous like xmlhttprequest, just a way to replace the "settimeout" hack.