MEMon
09-02-2008, 19:03
Sto cercando di creare una classe Thread.
function Thread(schedule,param){
this.schedule=schedule;
this.id=null;
this.param=param;
var self=this;
this.start=function(){
var tempFunc=function(){
self.schedule(self.param);
clearInterval(self.id);
}
this.id=setInterval(tempFunc,0);
}
}
function test(n,y){
var div=document.getElementById(n);
for(var i=0;i<10000;i++){
div.innerHTML="Thread("+n+"):"+i;
if(n==1&&i==350){
alert("Stop Thread("+n+")");
}
if(n==2&&i==100){
alert("Stop Thread("+n+")");
}
}
alert("Thread("+n+") has finished");
}
var thread1=new Thread(test,1);
var thread2=new Thread(test,2);
thread1.start();
thread2.start();
In teoria io ho pensato che siccome il codice viene "lanciato" con un setInterval sarebbe stato asincrono, ma non è vero, eseguendo questo codice si nota infatti che test(2) del thread2 parte solo dopo la fine di test(1)...
C'è modo di tirar fuori un vero multithreading?:confused:
function Thread(schedule,param){
this.schedule=schedule;
this.id=null;
this.param=param;
var self=this;
this.start=function(){
var tempFunc=function(){
self.schedule(self.param);
clearInterval(self.id);
}
this.id=setInterval(tempFunc,0);
}
}
function test(n,y){
var div=document.getElementById(n);
for(var i=0;i<10000;i++){
div.innerHTML="Thread("+n+"):"+i;
if(n==1&&i==350){
alert("Stop Thread("+n+")");
}
if(n==2&&i==100){
alert("Stop Thread("+n+")");
}
}
alert("Thread("+n+") has finished");
}
var thread1=new Thread(test,1);
var thread2=new Thread(test,2);
thread1.start();
thread2.start();
In teoria io ho pensato che siccome il codice viene "lanciato" con un setInterval sarebbe stato asincrono, ma non è vero, eseguendo questo codice si nota infatti che test(2) del thread2 parte solo dopo la fine di test(1)...
C'è modo di tirar fuori un vero multithreading?:confused: