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

[jfriends-ml 10212] Re: 読書会 ( Java スレッドプログラミング) 第 1 回議 事録宿題について



山下です。
お世話になっております。

回答ありがとうございます。
理解いたしました。


> 村山です.
> 
> > > -----------
> > >   staticメソッドに synchronized を設定するということは可能なの
> > >      だろうか?
> > > -----------
> >   以下のように、Classクラスのインスタンスに対してlockを行うこと
> > になるということではないでしょうか...
> 多分,次の通りのはずです.
> 
> --------
> Javaのモニタには二種類ありまして,一つはインスタンスに対応した
> モニタで,もう一つはクラスに対応したモニタです.その実装に関して
> は規定されていませんので,どこにどのような形式で保持するかは
> JavaVMの実装依存です.(Classクラスのインスタンスに対応していると
> 言えば言えなくもないのでしょうが...)
> 
> staticなsynchronized文やsynchronizedメソッドは,そのstaticな
> モニタを取得/開放します.ですので,non-staticなsynchronized文/
> メソッドとstaticなsynchronized文/メソッドが,同時に実行される
> ことはありえます.
> ちなみに,バイトコードレベルではsynchronized文はmonitorenter/
> monitorexitになりますが,staticなsynchronized文をサポートする
> バイトコードはないため,それ用のstaticメソッドをコンパイラが
> 自動的に作成し,対応しています.