Java synchronized & wait/notify ― 2008年06月27日 16時36分43秒
しかし、javadoc はその API のドキュメントとの性質上、言語的の事になると、見つけられない事も多くなる。配列に関することも、javadoc の中から見つけるのは難しい。時折、要素を与えつつ、インラインで配列を生成したくなるが、その文法はいつも忘れていて、ソースコードの山の中から探す事になる。
また、残念ながら、時折何度読み返しても意味の判らない物もある。IllegalMonitorStateException がその一つだった。また、wait、notify、notifyAll を読んでも見つけられない。
調べたところ、wait、notify、notifyAll は synchronized メソッドとブロックでのみ使用できるようだ。synchrnonized されていないところで使用した場合はIllegalMonitorStateException が発生する。
なるべく、synchronized されている場所を減らそうと、wait とnotify を synchronized の前後で使ったのが運の尽きだった。操作手順は正しいのに、例外が投げられる。javadoc ではなく、他を当たるまでは、何故例外が発生するのか解らなかった。
最近のコメント