- ★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net
244 :デフォルトの名無しさん[sage]:2015/05/11(月) 10:39:16.55 ID:RR/yh+ms - Object lock = new Object();
synchronized (lock) { } で排他制御しているのですがlockオブジェクトは staticでもないのになぜ排他制御できるんでしょうか?
|
- ★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net
245 :デフォルトの名無しさん[sage]:2015/05/11(月) 10:52:05.77 ID:RR/yh+ms - あー
わかった。 String lock = ""; synchronized (lock) { } だからだ。こんなのあり?
|
- ★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net
251 :デフォルトの名無しさん[sage]:2015/05/11(月) 15:55:26.02 ID:RR/yh+ms - >>247
そこが疑問なんです。リテラルだからstaticみたいなものだから そう書いてるのか。それをわかってて書いてるのか たまたまそれで動いたからよしとしているのか。 自分なら素直に static Object lock = new Object(); と書くのでよく使われるテクニックなのでしょうか。
|
- ★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net
253 :デフォルトの名無しさん[sage]:2015/05/11(月) 16:28:56.64 ID:RR/yh+ms - >>252
そのようですね。うーん。なぜこんなコードを書いたのか。 謎ですが修正しておきます。ありがとうございました。
|