synchronized用在普通方法上,代码块,静态方法上的区别
发布网友
发布时间:2022-05-13 13:08
我来回答
共1个回答
热心网友
时间:2023-10-10 08:42
区别如下:
一、
用在实例方法上时,同步的是当前对象(this)。
二、
用在静态方法上时,同步的是表示方法所属类的Class类的对象。
比如,如果静态方法所属的类是C,则同步的就是C.class。
三、
用在代码块上时,同步的是某一个具体的引用类型的非null对象。
比如,String lock="locker";
synchronized(lock) {
//需同步执行的代码
}
这里同步的就是字符串lock。