私はこれを行ういくつかのコードで作業しています:
var _init = false;
this.init = function(){
if(_init)
return;
else
_init = true;
// Do a bunch of stuff here
}
そこには、排除したい小さな競合状態があるように思えます。最初のインスタンスがtrueinit
に設定される前に、関数の 2 番目のインスタンスが実行を開始する可能性があります。_init
可能性は低いですが、ゼロではありませんよね?
それを考えると、シングルトンパターンのようなものを除いて、この競合状態を排除する簡単な方法はありますか?