忍者ブログ
淡々とお仕事のお勉強をするよ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

あれ、synchronized されてる変数って synchronized されてないメソッドから普通にアクセスされる ? 調べてみる。

えーと、つまり、

(前略)

public synchronized void SynchroMethod() {
    var = 100;
}

(中略)

public void NonSynchro() {
    var += 100;
}

(後略)

などとしても、SynchroMethod の操作が終わるまで NonSynchro は var に何もできないということなんだろうか。実際やってみれば分かるか。

こう書くようにしたらもっと分かりやすそう。

public void SynchroMethod2() {
    synchronized(var) {
        var = 100;
    }
}

var がプリミティブ型だと出来ない気がする。

スレッドではなくオブジェクトをロックする。同じクラスから出来たインスタンスのメソッドは排除できないとか、同じメソッドから出来たスレッドからはアクセスされてしまうとか何とかそんな感じ。

PR
この記事にコメントする
HN
Title
Mail
URL
Comment
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]


Designed by A.com
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
フリーエリア
最新TB
バーコード
ブログ内検索
アクセス解析
プロフィール
HN:
tnmt
性別:
非公開
(image created by E-Mail Icon Generator)