synchronized(this)与synchronized(class)
来源:互联网 发布:js设置div 的id 编辑:程序博客网 时间:2024/05/16 04:38
synchronized(class)很特别,它会让另一个线程在任何需要获取class做为monitor的地方等待.class与this做为不同的监视器可以同时使用,不存在一个线程获取了class,另一个线程就不能获取该class的一切实例.
根据下面的代码自行修改,分别验证下面的几种情况:
synchronized(class)
synchronized(this)
->线程各自获取monitor,不会有等待.
synchronized(this)
synchronized(this)
->如果不同线程监视同一个实例对象,就会等待,如果不同的实例,不会等待.
synchronized(class)
synchronized(class)
->如果不同线程监视同一个实例或者不同的实例对象,都会等待.
锁是和对象相关联的,每个对象有一把锁
为了执行synchronized语句,线程必须能够获得synchronized语句中表达式指定的对象的锁
一个对象只有一把锁,被一个线程获得之后它就不再拥有这把锁
线程在执行完synchronized语句后,将获得锁交还给对象
在方法前面加上synchronized修饰符即可以将一个方法声明为同步化方法。同步化方法在执行之前获得一个锁。如果这是一个类方法,那么获得的锁是和声明方法的类相关的Class类对象的锁。如果这是一个实例方法,那么此锁是this对象的锁。
- synchronized(this)与synchronized(class)
- synchronized(this)与synchronized(class)
- synchronized(this)与synchronized(class)
- synchronized(this)与synchronized(class)
- synchronized(class)与synchronized(this)
- synchronized(this)与synchronized(class)
- synchronized(class)、synchronized(this)与synchronized(object)
- synchronized(class)、synchronized(this)与synchronized(object)
- synchronized(class)、synchronized(this)与synchronized(object)
- synchronized(this)与synchronized(class) 简单实例
- synchronized(this)与synchronized(class)区别
- synchronized(class)、synchronized(this)与synchronized(object)的区别分析
- synchronized(this)、synchronized(class)与synchronized(Object)的区别
- synchronized (class) 和synchronized (this)
- synchronized(this)与synchronized(class)的区别
- synchronized(class) 与 synchronized(this)区别
- java synchronized关键字this与this.Class的区别
- synchronized锁方法,synchronized锁对象,synchronized(this),synchronized(class)最佳理解方式
- UUID mismatch detected
- linux操作系统中,ctags的用法
- VI的使用命令
- Hibernate查询缓存的设置
- Jquery效果
- synchronized(this)与synchronized(class)
- XP系统下如何连接网络打印机
- 类型不匹配:不能从 Iterator 转换为 HTMLDocument.Iterator
- Oracle Trigger 触发器
- 分布式服务框架 Zookeeper
- Makefile
- C++ string学习
- ubuntu命令总结
- UITableView中行 样式