请解释Java如何与静态方法同步?有人说它是由它的类对象完成的,但他们并没有说明锁是如何完成的。
答案 0 :(得分:1)
您始终在监视器对象上进行同步。每个Java对象都可以在这里使用。
使用同步块,您可以直接指定该对象。
synchronized (something){
}
使用synchronized方法,它在对象实例本身上同步(在this
上),因此它与:
synchronized (this) {
}
使用同步静态方法,它在类对象上同步,就像“有人说过”。
synchronized (ThisClass.class){
}
机制总是一样的:只有一个线程可以同时持有锁,其他线程必须等待。