• Java静态同步方法和非静态同步方法


     
           所有的非静态同步方法用的都是同一把锁——该实例对象本身也就是说如果一个实例对象的非静态同步方法获取锁后,该实例对象的其他非静态同步方法必须等待获取锁的方法释放锁后才能获取锁进而执行方法内容。可是不同的实例对象的非静态同步方法因为跟该实例对象的非静态同步方法用的不是同一个锁,所以不用等到该实例对象已获取锁的非静态同步方法释放锁就可以获取他们自己的锁。

            而所有的静态同步方法用的也是同一把锁——对应类对象本身由于静态同步方法与非静态同步方法所用的锁不可能是同一把锁,所以静态同步方法与非静态同步方法之间是不会有竞争的。但是一旦一个静态同步方法获取锁后,其他的静态同步方法都必须等待该方法释放锁后才能获取锁,而不管是同一个实例对象的静态同步方法之间,还是不同的实例对象的静态同步方法之间,只要它们同一个类的实例对象(静态同步方法的锁与对应的类有关和对象实例无关)!

  • 相关阅读:
    用TextKit实现表情混排
    IOS类似9.png
    iphone 弹出键盘,文本框自动向上移动。
    IOS截取部分图片
    IOS给图片增加水印(图片、文字)
    iOS界面设计切图小结
    table tr th td thead tbody tfoot
    怎样让table没有边框
    margin、padding,border默认值
    Java 随机数
  • 原文地址:https://www.cnblogs.com/liuleicode/p/4963150.html
Copyright © 2020-2023  润新知