首页 > 编程语言 > 详细

【Java】Synchronized锁范围

时间:2021-01-20 17:33:21      阅读:29      评论:0      收藏:0      [点我收藏+]

分类被锁对象代码说明
方法 实例方法 public synchronized void method(){} 1. 锁住的是该类的实例对象
2. 相同实例对象在不同线程中调用方法 会同步
3. 不同实例对象在不同线程中调用 不会同步
方法 静态方法 public static synchronized void method(){} 1. 锁住的是该类的类对象
2. 相同/不同实例对象在不同线程中调用方法 都会同步
       
代码块 实例对象 synchronized(this){} 1. 锁住的是该类的实例对象
2. 相同实例对象在不同线程中调用方法 会同步
3. 不同实例对象在不同线程中调用 不会同步
代码块 类对象 synchronized(Demo.class){} 1. 锁住的是该类的类对象
2. 相同/不同实例对象在不同线程中调用方法 都会同步
代码块 任意对象 String lock;synchronized(lock){} 1. 锁住的是lock变量2. 如果lock是对象变量,则参考实例对象逻辑
3. 如果lock是类变量,则参考类对象实例

【Java】Synchronized锁范围

原文:https://www.cnblogs.com/gossip/p/14303393.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!