synchronized的鎖對(duì)象改變問題

大家都知道synchronized是一個(gè)對(duì)象鎖岩榆,所以當(dāng)對(duì)象變化時(shí)各薇,鎖就會(huì)消失,就會(huì)沒有同步效果鳞仙。

請(qǐng)看下面的問題:

package Thread;

/**
 * Created by zhangzheming on 2018/1/15.
 */

public class ChangeLock {

    private String lock = "lock";

    private void method(){
        synchronized (lock){
            try {
                System.out.println("當(dāng)前線程:"+Thread.currentThread().getName()+"開始");
                lock = "lock modify";
                System.out.println("當(dāng)前線程:"+Thread.currentThread().getName()+"完成");
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args){
        final ChangeLock locks = new ChangeLock();

        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                locks.method();
            }
        });

        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                locks.method();
            }
        });

        t1.start();
        t2.start();
    }
}

結(jié)果是兩個(gè)線程是幾乎是同時(shí)完成任務(wù)寇蚊,為什么呢?
那是因?yàn)樵谶M(jìn)行method方法執(zhí)行時(shí)棍好,鎖對(duì)象改變了仗岸,這樣同步機(jī)制就消失,沒有了同步效果借笙,這樣對(duì)于多線程操作時(shí)扒怖,便是每個(gè)線程對(duì)象都可以同時(shí)進(jìn)行操作。

但是如果我們對(duì)class對(duì)象進(jìn)行修改是否也會(huì)有上述情況呢业稼?
答案是否定的盗痒。

package Thread;

/**
 * Created by zhangzheming on 2018/1/15.
 */

public class ModifyLock {

    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public synchronized void changeAttribute(String name,int age){
        try{
            System.out.println("當(dāng)前線程:"+Thread.currentThread().getName()+"開始");
            this.setName(name);
            this.setAge(age);

            System.out.println("當(dāng)前線程:"+Thread.currentThread().getName()+"修改對(duì)象內(nèi)容為:"+this.getName()+","+this.getAge());
            Thread.sleep(2000);
            System.out.println("當(dāng)前線程:"+Thread.currentThread().getName()+"結(jié)束");
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    public static void main(String[] args){
        final ModifyLock locks = new ModifyLock();

        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                locks.changeAttribute("zhangsan",34);
            }
        },"t1");

        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                locks.changeAttribute("lisi",345);
            }
        },"t2");

        t1.start();
        t2.start();
    }
}

結(jié)果

所以對(duì)于類對(duì)象的屬性進(jìn)行修改,并不影響鎖的效果低散!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俯邓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谦纱,更是在濱河造成了極大的恐慌看成,老刑警劉巖君编,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跨嘉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡吃嘿,警方通過查閱死者的電腦和手機(jī)祠乃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門梦重,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人亮瓷,你說我怎么就攤上這事琴拧。” “怎么了嘱支?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵蚓胸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我除师,道長(zhǎng)沛膳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任汛聚,我火速辦了婚禮锹安,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘倚舀。我一直安慰自己叹哭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布痕貌。 她就那樣靜靜地躺著风罩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舵稠。 梳的紋絲不亂的頭發(fā)上泊交,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音柱查,去河邊找鬼廓俭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛唉工,可吹牛的內(nèi)容都是我干的研乒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼淋硝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雹熬!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起谣膳,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤竿报,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后继谚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烈菌,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芽世。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挚赊。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖济瓢,靈堂內(nèi)的尸體忽然破棺而出荠割,到底是詐尸還是另有隱情,我是刑警寧澤旺矾,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布蔑鹦,位于F島的核電站,受9級(jí)特大地震影響箕宙,放射性物質(zhì)發(fā)生泄漏举反。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一扒吁、第九天 我趴在偏房一處隱蔽的房頂上張望火鼻。 院中可真熱鬧,春花似錦雕崩、人聲如沸魁索。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)粗蔚。三九已至,卻和暖如春饶火,著一層夾襖步出監(jiān)牢的瞬間鹏控,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工肤寝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留当辐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓鲤看,卻偏偏與公主長(zhǎng)得像缘揪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子义桂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 從三月份找實(shí)習(xí)到現(xiàn)在找筝,面了一些公司,掛了不少慷吊,但最終還是拿到小米袖裕、百度、阿里溉瓶、京東急鳄、新浪谤民、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,277評(píng)論 11 349
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法攒岛,類相關(guān)的語(yǔ)法赖临,內(nèi)部類的語(yǔ)法胞锰,繼承相關(guān)的語(yǔ)法灾锯,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,664評(píng)論 18 399
  • 一:java概述:1嗅榕,JDK:Java Development Kit顺饮,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,661評(píng)論 0 11
  • 煙花三月下?lián)P州”凌那,也許是被李白大詩(shī)人這首詩(shī)的描寫吸引了兼雄,特別的想去揚(yáng)州看看,一睹芳容帽蝶,但因工作匆忙赦肋,時(shí)間不巧也無(wú)暇...
    藍(lán)夢(mèng)奇閱讀 230評(píng)論 2 3
  • 今天上午,元順堂會(huì)員在牛兒莊礦分店進(jìn)行了自己動(dòng)手做菜包餃子的聚餐活動(dòng)励稳。大家從自己家里帶來(lái)了條盤佃乘、桿杖等餐具,忙的不...
    寶刀閱讀 296評(píng)論 0 0