Re: [問題] static synchronized
※ 引述《a613204 (胖胖)》之銘言:
: 想請問一下 static synchronized method 鎖住的是哪一個物件呢??
: 少了static 的話 好像是用物件本身去鎖住函數
: 那加上了static 可以在不產生物件的情況下呼叫,那麼這個時候是用哪個物件去鎖住呢??
: 請各位幫忙解答~~謝謝
JVM/ClassLoader 在 load and resolve class 之後,會建構一個 class object(
java.lang.Class subclass instance)。你可以看成這個 class object 在 runtime
代表一個 Java class(class object 提供 reflection 機制讓程式在 runtime 取得
Java class 的資訊,而這些資訊(java.lang.reflect.Field/java.lang.reflect
.Method 也提供對應的操作)。
Class Literal(ClassName.class) 的值就是 class object reference value。
class Foo {
static synchronized void bar() {
...
}
}
bar 在執行過程中握有(鎖)的是 Foo.class 這個 object's monitor。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.137.181
※ 編輯: sbrhsieh 來自: 218.173.137.181 (05/20 01:21)
推
05/20 16:16, , 1F
05/20 16:16, 1F
推
05/20 19:02, , 2F
05/20 19:02, 2F
※ 編輯: sbrhsieh 來自: 218.173.133.141 (05/21 01:42)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):