请写出以下代码块的等价形式:
public synchronized String pop(){
//some codes
}
答:上述代码是一个
同步代码块,它等价的写法如下:
public String pop() {
synchronized(this){
//some codes
}
}
每个Java对象都有且只有一个同步锁,在任何时刻,
最多只允许一个
线程拥有这把锁。当线程试图执行上述带有synchronized(this)标记的代码块时,线程必须首先获得this
关键字引用的对象的锁。
(其实对象的同步锁只是概念上的一种锁,也可以称为以一个对象为标记的锁)