亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如果一個對象有多個方法加了 synchronized,那么該對象有幾把鎖?

標簽:
Java

答案是一把锁 🔐

代码示例:

public class Test {

    public synchronized void method1(){
        // do something
    }

    public synchronized void method2(){
        // do something
    }

}

对象锁是在一个类的对象上加的的锁,只有一把,不管有几个方法进行了同步。

这些同步方法都共有一把锁,只要一个线程获得了这个对象锁,其他的线程就不能访问该对象的任何一个同步方法。

对象锁:

synchronized 修饰实体里的非静态变量,锁的是对象

synchronized 修饰代码块,锁的是对象

synchronized 修饰非静态方法,锁的是对象

使用对象锁的情况,只有使用同一对象的线程才会受锁的影响,多个对象调用同一方法也不会受影响。

类锁:

synchronized 修饰类中的静态变量

synchronized 修饰静态方法

synchronized 修饰类.class

类锁是所有线程共享的锁,所以同一时刻,只能有一个线程使用加了锁的方法或方法体,不管是不是同一个实例。

本文由博客一文多发平台 OpenWrite 发布!

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消