在this questionä¸è¯´è¿‡
 ÂåŒæ¥é™æ€æ–¹æ³•å’ŒåŒæ¥éžé™æ€æ–¹æ³•ä¹‹é—´æ²¡æœ‰é“¾æŽ¥
好的,这很简å•ï¼Œä½†æ˜¯å¦‚æžœéžé™æ€æ–¹æ³•ä¸çš„代ç 调用é™æ€æ–¹æ³•å‘¢ï¼Ÿè¿™ä¸ªçº¿ç¨‹æ˜¯å¦ä¼šåŒæ—¶ä¿æŒé™æ€ï¼ˆä¸Žç±»å…³è”)和éžé™æ€ï¼ˆä¸Žç±»çš„实例关è”)监视器?
ç”案 0 :(得分:2)
 Â这个线程是å¦åŒæ—¶ä¿æŒé™æ€ï¼ˆä¸Žç±»ç›¸å…³ï¼‰å’Œ   éžé™æ€ï¼ˆä¸Žç±»çš„实例相关è”)监视?
æ˜¯çš„ï¼Œé‚£æ˜¯å› ä¸ºï¼Œ
 Âæ ¹æ®Java Language Specification 8.4.3.6,
   Â对于一个类(é™æ€ï¼‰   方法,与方法的Class对象关è”的监视器   使用了类。对于实例方法,与之关è”的监视器   使用this(调用该方法的对象)。
毕竟2个监视器将分别定义。
ç”案 1 :(得分:1)
没有任何"é™æ€åŒæ¥ï¼†ï¼ƒ34;或"éžé™æ€åŒæ¥ï¼†ï¼ƒ34;。这些想法éšè—了真æ£å‘生的事情。
æ¤ï¼š
class Foobar {
static synchronized void mumble() { ... }
}
åªæ˜¯å†™è¿™ç¯‡æ–‡ç« çš„æ·å¾„:
class Foobar {
static void mumble() {
synchronized(Foobar.class) {
...
}
}
}
而且:
class Foobar {
synchronized void grumble() { ... }
}
åªæ˜¯å†™è¿™ç¯‡æ–‡ç« çš„æ·å¾„:
class Foobar {
void grumble() {
synchronized(this) {
...
}
}
}
谈论"é™æ€åŒæ¥ï¼†ï¼ƒ34;没有æ„ä¹‰ã€‚å› ä¸ºåŒæ¥æ˜¯ä½ 对对象所åšçš„事情,并且没有é™æ€å¯¹è±¡è¿™æ ·çš„东西。 Javaä¸å”¯ä¸€å¯ä»¥æ˜¯static
的东西是å˜é‡å’Œæ–¹æ³•ã€‚
P.S。,回ç”ä½ çš„é—®é¢˜ï¼Œ
当线程进入åŒæ¥å—或方法时,如果线程尚未é”定该对象,则必须获å–指定对象的é”å®šã€‚å› æ¤ï¼Œå¦‚æžœf.grumble()
在上é¢çš„示例ä¸è°ƒç”¨mumble()
,则线程首先必须在f
进入grumble()例程时获å–é”定,然åŽï¼Œåœ¨ä»ç„¶æŒæœ‰è¯¥é”定时,它还必须获得Foobar.class
çš„é”定。