第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

結(jié)合下面一段java代碼,請問一下synchronized 塊對當(dāng)前對象和其他對象有是什么區(qū)別?

結(jié)合下面一段java代碼,請問一下synchronized 塊對當(dāng)前對象和其他對象有是什么區(qū)別?

海綿寶寶撒 2019-03-15 18:15:08
使用Synchronized (this) 對當(dāng)前對象進行同步化,這很容易理解;但對其他對象同步化,應(yīng)該怎樣理解?比如下面的代碼,synchronized(syncObject) 語句,syncObject 就是一個普通對象Object,這樣又有什么意義了?import static net.mindview.util.Print.*;class DualSynch {  private Object syncObject = new Object();  public synchronized void f() {    for(int i = 0; i < 5; i++) {      print("f()");      Thread.yield();    }  }  public void g() {    synchronized(syncObject) {      for(int i = 0; i < 5; i++) {        print("g()");        Thread.yield();      }    }  }}public class SyncObject {  public static void main(String[] args) {    final DualSynch ds = new DualSynch();    new Thread() {      public void run() {        ds.f();      }    }.start();    ds.g();  }}
查看完整描述

5 回答

?
慕后森

TA貢獻1802條經(jīng)驗 獲得超5個贊

我的理解是 Java 中每個對象都有一把鎖,synchronized (this) 鎖的是對象本身,synchronized (object) 鎖的是一個作為鎖的 Object。


以下代碼中的兩個 synchronized 塊之間不構(gòu)成同步,因為兩個塊的鎖加在了不同對象上


class SyncSample {

    

    Object lock = new Object();

    

    synchronized void m1() {

        System.out.println("m1");

    }

    

    void m2() {

        synchronized (lock) {

            System.out.println("m2");

        }

    }

}


查看完整回答
反對 回復(fù) 2019-04-17
?
夢里花落0921

TA貢獻1772條經(jīng)驗 獲得超6個贊

利用一個單獨的對象作為鎖對象。這種情況下也可以使用ReentrantLock,然后用它的lock()unlock()代替synchronized。


查看完整回答
反對 回復(fù) 2019-04-17
?
拉莫斯之舞

TA貢獻1820條經(jīng)驗 獲得超10個贊

public synchronized void f()相當(dāng)于synchronized (this)也就是對象本身,synchronized(syncObject)加鎖的是另外一個對象syncObject。
這樣的結(jié)果就是:你new出來一個DualSynch對象,在兩個線程中f()方法和g()方法是可以并發(fā)執(zhí)行的,但是在兩個線程中f()f()不能并發(fā)執(zhí)行,g()g()不能并發(fā)執(zhí)行。


查看完整回答
反對 回復(fù) 2019-04-17
  • 5 回答
  • 0 關(guān)注
  • 544 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號