javascriptはシングルスレッドの言語である。
ただし、処理が重いものを含まれる場合などにバックグラウンドで動かしたいことがある。
そこで、マルチスレッドを擬似的に表現する方法として、
setTimeoutを使って処理を切り替えていく方法や
Web workersを使う方法がある。
尚、setTimeoutを使う場合注意したいことがある。
1.処理A
2.setTimeout(funcA,time1);
3.setTimeout(funcB,time2);
4.処理B
と記述したとしても実行順序は1,2,3,4の順にならないケースがあることを
認識しておく必要がある。
従って、funcAとfuncBが終わったら実行して欲しい処理を書く際には
以下の方法では駄目。
function sample() {
if(sample2()) {
//funcA,funcB実行後に、実行して欲しい処理
}
}
function sample2() {
setTimeout(funcA,1000);
setTimeout(funcB,50);
function funcA() {
}
function funcB() {
}
return true;
}
最終更新:2014年02月01日 20:43