@synchronized(self) 锁的是什么

锁的是对象内存地址,必须保证传入同一个对象,执行的代码才会产生互斥同步的效果

synchronized中传入的object的内存地址,被用作key,通过hash map对应的一个系统维护的递归锁。

以上就是object的用处,所以不管是传入什么类型的object,只要是有内存地址,就能启动同步代码块的效果


参考资料:https://www.jianshu.com/p/2dc347464188

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 9,194评论 0 11
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,906评论 1 32
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,921评论 1 14
  • 一、摘要  在《深入剖析Java关键字之volatile》的文章中,我们知道volatile关键字能够解决多线程编...
    SunnyMore阅读 6,880评论 1 13
  • 一、线程状态转换新建(New)可运行(Runnable)阻塞(Blocking)无限期等待(Waiting)限期等...
    达微阅读 3,764评论 1 2

友情链接更多精彩内容