Los web workers permiten carga y ejecución asíncrona de javascript, tienen algunas limitaciones ya que no se puede acceder al DOM entre otras funciones, usa threads a nivel de sistema operativo y usa como método de sincronización paso de mensajes.
Un ejemplo de sincronización sencillo.
long_work.js
var j=1;
for(var i=0; i<999999999; i++){j=j*7+2;j=1}
this.postMessage('Done');
index.html
<script type="text/javascript">
var worker = new Worker("/javascripts/long_work.js");
worker.onmessage = function(event){
alert(event.data);
};
</script>
Ejemplo de uso en la web de la fundación Mozilla.