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

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

synchronized在修飾代碼塊的時候,括號后面要跟什么啊?

synchronized在修飾代碼塊的時候,括號后面要跟什么?。?/h1>
搖曳的薔薇 2019-03-06 09:15:03
package basic;public class TestSynchronizedObject {    public static void main(String[] args) {        final TestSynchronizedObject testSynchronizedObject_first = new TestSynchronizedObject();        final TestSynchronizedObject testSynchronizedObject_second = new TestSynchronizedObject();        final MyObject myObject_first = new MyObject();        final MyObject myObject_seconde = new MyObject();        new Thread("線程A") {            @Override            public void run() {                myObject_first.print("線程A");            }        }.start();        new Thread("線程B") {            @Override            public void run() {                myObject_seconde.print("線程B");            }        }.start();    }}class MyObject {    public void print(String str) {        System.out.println("線程" + Thread.currentThread().getName() + "開始執(zhí)行");        synchronized ("") {            for (int i = 0; i < 10; i++) {                System.out.println(str + " ." + i + ". ");                try {                    Thread.sleep(1000);                } catch (InterruptedException e) {                }            }        }        System.out.println("線程" + Thread.currentThread().getName() + "執(zhí)行結(jié)束");    }}//輸出結(jié)果://線程線程A開始執(zhí)行//線程A .0. //線程線程B開始執(zhí)行//線程A .1. //線程A .2. //線程A .3. //線程A .4. //線程A .5. //線程A .6. //線程A .7. //線程A .8. //線程A .9. //線程B .0. //線程線程A執(zhí)行結(jié)束//線程B .1. //線程B .2. //線程B .3. //線程B .4. //線程B .5. //線程B .6. //線程B .7. //線程B .8. //線程B .9. //線程線程B執(zhí)行結(jié)束查閱相關(guān)文檔,當(dāng)synchronized修飾代碼塊的時候,表示線程在執(zhí)行的時候會將synchronized括號中的對象上鎖。(注意這個對象可以是任意類的對象,也可以使用this關(guān)鍵字)。但是我這里明明是兩個實例,而且在synchronized修飾代碼塊的時候,我的括號中明明沒有指定在什么對象上使用鎖,為什么是這樣的打印結(jié)果呢?
查看完整描述

1 回答

?
梵蒂岡之花

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

synchronized (lock-object) {

}

括號后面要跟一個對象,這個對象充當(dāng)鎖的作用。

synchronized(""),這里你把一個空字符串當(dāng)成鎖,并因此認為你沒有指定鎖住哪個對象。

而實際上,空字符串本身就是一個對象。并且,你有兩個實例,并把空字符串喂給它們,這兩個實例實際上持有的是同一個對象。

  1. 在Java中,全部都是對象, 空字符串也是對象。

  2. 常量字符串,比如空字符串,都放在常量池里,兩個實例引用的空字符串實際上就是常量池里的空字符串,是同一個對象。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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