同步代码块:
synchronized(对象)
{
需要同步的代码;
}
同步函数:
public synchronized void 函数名()
{
需要同步的代码;
}
静态同步函数:
public static synchronized void 函数名()
{
需要同步的代码;
}
同步代码块与同步函数以及静态同步函数的区别:
同步代码块的锁:任意唯一的对象;同步函数的锁:this;静态同步函数的锁:对象引用.getClass()(此方法非静态方法)或类名.class.
注意:同步代码块的锁,其实并不必须是对象,也可以是this, 类名.class 前提是要保证唯一性。同样可以实现同步。
|