您的位置:首页 > 编程语言 > Java开发

java多线程 - 同步

2016-03-28 00:00 225 查看
synchronized关键字锁的对象可以是方法、变量、类和当前实例。synchronized不能被继承,子类将自动去除synchronized关键字(public synchronized void xxx()变为public void xxx())

方法

同一实例当xxx()方法被访问时,该实例内的任何其它标有synchronized关键字的方法都不能被访问

public synchronized void xxx(){
...
}


对于该类的所有实例同一时间只有一个实例可以访问该方法

public synchronized static void xxx(){
...
}


变量:变量a获得了同步锁,任何持有a的实例,同一时间只有一个实例可以访问该区块。变量对象锁

synchronized(a){
...
}


类:线程到达该区块时,对于类xxx的多有操作包括静态变量和方法都不能操作。类对象锁

synchronized(xxx.class){
...
}


当前实例:线程到达该区块时,该实例的所有操作将被锁住,直到该区块执行完毕。实例对象锁

synchronized(this){
...
}


扩展阅读:synchronized
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: