- 267 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 07:08:09 ]
- >>264
newが使えない事くらい、わかった上で書いたんだけど(面倒だから) そんな本質的じゃない部分を指摘してうれしい? 件の部分は、(ほぼ)同時に突入したら、当然複数初期化される。 けど、続く部分で、実際に代入されるのは一つであることが保証される。 (最初に実行されたスレッド以外からのCASは失敗する) だから、それを実行した後、自スレッドで初期化した値とpが違っていたら それを破棄して、全スレッド共有の値でロックを実行すればよいだけ。 まあ、俺が偉そうな事言いたくて書き込んだだけだから、あまり気にするな。 普通に非ローカルな静的変数とC++のインスタンス初期化を使うのが いちばん簡単だし、わかりやすいし、無駄も無い。 初期化順が問題になることも無いでしょ。
|

|