[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 1552] Re: Java スレッドプ ログラミングを読む会第 4 回議事録



こんにちは、澤田です。

On Wed, 28 Feb 2001 21:27:42 +0900 (JST)
in [jfriends-ml 1539] Re: Java スレッドプログラミングを読む会第 4  回議事録
takekawa@xxxxxxxxxxxxxx wrote:

> P.137においてダブルチェックによる処理について記述されている
> のですが、そこで秋元さんが、以下の記事について教えてくれました。
> http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-toolbox.html
> 「Warning! Threading in a multiprocessor world」
> という題名でマルチプロセッサ環境だとダブルチェックがうまくいかない
> 理由について記述してあるそうです。

嬉しい(でもあせった(^^;)情報、ありがとうございます。
今やっているプロジェクトのコードで、結構ダブルチェックの考え方を
利用しているところがあったので、一通り見直しました。
new とかは、やってませんでした。助かった(^^;

補足ですけど、記事ではシングルCPUでも問題が起きる場合の説明があります。

> ちなみにそこから派生したはなしで、P.138のソースについては、
> プリミティブ型だから問題ないんじゃないか?
> という話になりました。

そうですね。

Javaは式の評価順序とかをしっかりしているので、上の記事であるような
「最初にreferenceに値を入れておいてからコンストラクタのコードを実行する」
なんて現象が起きるってのがショックだったのですが、JLS の 15.9.4 を
読む限りでは未定義なんですね。(違っていればご指摘を)

___
澤田 大輔(die)
email: die@xxxxxxxx(home), swd@xxxxxxxxxxxxxxxx(office)