首页 > 编程 > Java > 正文

java同步静态方法与非静态方法(使用synchronized关键字)

2019-11-10 20:51:12
字体:
来源:转载
供稿:网友

1、非静态方法同步

 一个类中所有的非静态方法同步时采用同一把锁--类实例本身(即该类的对象)。该实例的一个非静态同步方法获取对象锁后,该实例的其他非静态同步方法要想获得锁,必须等获取锁的方法释放锁后才能获取。但是该类的其他实例的非静态同步方法要想获取锁,可不用等待,因为每个实例使用的是不同的锁。

2、静态方法同步

一个类中所有的静态方法同步时采用同一把锁--类本身。一旦一个静态同步方法获取到锁,其他静态同步方法必须等到锁释放后才能获取。此时,不管是哪个实例,它们都必须等待锁释放。

非静态方法同步锁与静态方法同步锁是两个不同的锁,所以两者之间没有竞争关系,互不影响。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表