Java synchronized & wait/notify2008年06月27日 16時36分43秒

Java は javadoc でソースコードから、オンラインドキュメントが生成される。ソースコードから記述を抜き出すのが基本なので、生成される内容の質は、書いた者に影響される。JDK の中に含まれる物は比較的、質がいい。

しかし、javadoc はその API のドキュメントとの性質上、言語的の事になると、見つけられない事も多くなる。配列に関することも、javadoc の中から見つけるのは難しい。時折、要素を与えつつ、インラインで配列を生成したくなるが、その文法はいつも忘れていて、ソースコードの山の中から探す事になる。

また、残念ながら、時折何度読み返しても意味の判らない物もある。IllegalMonitorStateException がその一つだった。また、wait、notify、notifyAll を読んでも見つけられない。

調べたところ、wait、notify、notifyAll は synchronized メソッドとブロックでのみ使用できるようだ。synchrnonized されていないところで使用した場合はIllegalMonitorStateException が発生する。

なるべく、synchronized されている場所を減らそうと、wait とnotify を synchronized の前後で使ったのが運の尽きだった。操作手順は正しいのに、例外が投げられる。javadoc ではなく、他を当たるまでは、何故例外が発生するのか解らなかった。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/06/27/3598657/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。