【初心者】Java質問・相談スレッド56【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0386デフォルトの名無しさん
NGNGそのクラスのsynchronizedなクラスメソッド(staticメソッド)が同期化される。インスタンスメソッドは
されない。
動作的には、synchronizedなクラスメソッドは実行開始時に「クラス名.class」のロックを獲得
しようとする。もし同じクラスのsynchronizedなクラスメソッドが実行中の場合、「クラス名.class」の
ロックが取得できないので、待機する。
また、synchronized()ブロックで「クラス名.class」のロックが取られている場合も、待機すること
になる。
インスタンスメソッドがsynchronizedな場合は、該当インスタンス(つまりthis)のロックを獲得
しようとする。「クラス名.class」とは別のもののロックを取得しようとするのだから、関係ない、
ということ。
当然ながら、同期化されてない(synchronizedでない)メソッドは、複数のスレッドからいつでも
実行可能。
■ このスレッドは過去ログ倉庫に格納されています