Java 同步静态方法:锁定对象或类
2022-08-31 07:37:22
Java文档说:
在同一对象上两次对同步方法的调用不可能交错。
这对静态方法意味着什么?由于静态方法没有关联的对象,那么同步关键字是否会锁定类而不是对象?
Java文档说:
在同一对象上两次对同步方法的调用不可能交错。
这对静态方法意味着什么?由于静态方法没有关联的对象,那么同步关键字是否会锁定类而不是对象?
为了给Oscar的回答添加一点细节(令人愉悦的简洁!),Java语言规范的相关部分是8.4.3.6,“同步方法”:
同步方法在执行之前获取监视器 (§17.1)。对于类(静态)方法,将使用与方法类的 Class 对象关联的监视器。对于实例方法,将使用与此关联的监视器(为其调用该方法的对象)。
由于静态方法没有关联的对象,那么同步关键字是否会锁定类而不是对象?
是的。:)