java多线程 - 同步
2016-03-28 00:00
225 查看
synchronized关键字锁的对象可以是方法、变量、类和当前实例。synchronized不能被继承,子类将自动去除synchronized关键字(public synchronized void xxx()变为public void xxx())
方法
同一实例当xxx()方法被访问时,该实例内的任何其它标有synchronized关键字的方法都不能被访问
对于该类的所有实例同一时间只有一个实例可以访问该方法
变量:变量a获得了同步锁,任何持有a的实例,同一时间只有一个实例可以访问该区块。变量对象锁
类:线程到达该区块时,对于类xxx的多有操作包括静态变量和方法都不能操作。类对象锁
当前实例:线程到达该区块时,该实例的所有操作将被锁住,直到该区块执行完毕。实例对象锁
扩展阅读:synchronized
方法
同一实例当xxx()方法被访问时,该实例内的任何其它标有synchronized关键字的方法都不能被访问
public synchronized void xxx(){ ... }
对于该类的所有实例同一时间只有一个实例可以访问该方法
public synchronized static void xxx(){ ... }
变量:变量a获得了同步锁,任何持有a的实例,同一时间只有一个实例可以访问该区块。变量对象锁
synchronized(a){ ... }
类:线程到达该区块时,对于类xxx的多有操作包括静态变量和方法都不能操作。类对象锁
synchronized(xxx.class){ ... }
当前实例:线程到达该区块时,该实例的所有操作将被锁住,直到该区块执行完毕。实例对象锁
synchronized(this){ ... }
扩展阅读:synchronized
相关文章推荐
- java多线程 - 并发
- java回调机制理解
- Java内省操作( java.beans API 的类)
- Spring事务总结---事务概述及Spring事务的基本使用
- 权限设计总结
- idea 与 eclipse保持一致的问题
- java访问数据库
- springMVC+JPA+easyui+mysql 设计
- springmvc+mybatis+easyui+mysql
- Spring Data JPA 简单介绍
- java html特殊字符转换
- 排序算法--快速排序法
- Web Services(2)-Spring+CXF 发布WS
- java内存模型与线程(二)
- 解决Eclipse 更新慢问题
- Java实现n!(递归)
- SpringMVC4.x配置JSON视图
- java的concurrent包简介
- java的concurrent包工具类
- java的concurrent包的存储类