java性能监控工具 java的多线程同步,什么是同一对象监视器?监视器是什么?
浏览量:2704
时间:2021-04-10 06:43:19
作者:admin
java的多线程同步,什么是同一对象监视器?监视器是什么?
Java多线程监视器是同步机制。
通常,在执行线程同步时使用关键字“synchronized”。它有一个参数监视器,通常指这个参数。
Synrhonized被广泛使用。其应用层的语义是,任何非空对象都可以用作“锁”
当synchronized作用于方法时,它锁定对象实例(this);
当synchronized作用于静态方法时,它锁定对象对应的类实例,因为类数据存在于持久带中,所以静态方法锁相当于类的全局锁;
当synchronized作用于静态方法时,它会锁定与对象对应的类实例,而对象实例会锁定相应的代码块。
在hotspot JVM实现中,锁有一个特殊的名称:object monitor。
java synchronized锁对象,当对象引用是null的时候,锁的是什么?
谢谢
!Java语言规范明确指出,如果锁定的对象为null,则会发生NullPointerException。规范的内容如下:
表达式的类型必须是引用类型,否则会发生完全时间错误。首先计算表达式,执行同步语句。然后:如果表达式的求值由于某种原因完全完成,那么synchronized语句也会因为同样的原因突然完成。否则,如果表达式的值为null,则抛出NullPointerException。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。