Synchronized的理解

  • 互斥鎖埠啃,鎖住一塊代碼區(qū)。
    • 提問:什么叫互斥鎖伟恶?
    • 互斥鎖又叫排他鎖碴开,它作用于一塊代碼區(qū),則同一個時刻博秫,只允許有一個線程訪問潦牛,不管是讀還是寫。
  • 兩種用法:
    • 作用于方法內(nèi)的一塊代碼區(qū)台盯。
      Synchronized(object){} 含義:object是Object類的一個實例(即除非基本類型外的任意對象實例)罢绽,每個實例有一個對象鎖。這句語法的含義就是:只有獲得了object的對象鎖静盅,才能執(zhí)行{}內(nèi)的代碼塊良价。當多個線程同時想要獲取某一個對象鎖時,只會有一個獲得蒿叠,其他線程會阻塞等待明垢。
    • 作用于方法上。
      • 非靜態(tài)方法:多線程中同時掉用同一個對象實例的方法時市咽,會有互斥現(xiàn)象發(fā)生痊银。
        多線程中同時掉用不同一個對象實例的方法時,不會有互斥現(xiàn)象發(fā)生施绎。
      • 靜態(tài)方法:對所有類對象起作用溯革,只要調(diào)用這個方法,不管是不是通過同一個類對象還是不同類對象谷醉,都會有互斥現(xiàn)象致稀。
  • 舉個例子
class RetryTest1 {
  private int i = 0;
  private static int s = 0;

  public void add(){ //線程不安全
    s++;
  }
  public void addSyncI(){ //線程安全
    synchronized (this) {
      i++;
    }
  }
  public void addSyncS(){ //線程不安全
    synchronized (this) {
      s++;
    }
  }
  public synchronized void addSyncFun(){ //線程不安全
    s++;
  }
  public static synchronized void addSyncStaticFun(){ //線程安全
    s++;
  }
}
  • 代碼解釋
    • add方法顯然線程不安全。這個就不解釋了俱尼。
    • addSyncI方法是線程安全的抖单,因為i是非靜態(tài)變量,即每個類對象擁有各自的變量。這里synchronized(this)意思就是本類對象的意思矛绘。所以是線程安全的耍休。
    • addSyncS方法是線程不安全的,因為s是靜態(tài)變量货矮,而synchronized修飾的是非靜態(tài)方法羊精,即如果多線程中同時調(diào)用不同類對象的該方法,就會有問題次屠。
    • addSyncFun方法是線程安全的园匹,因為synchronized修飾的是靜態(tài)方法,即這個方法本身任何情況下都是互斥的劫灶,所以是線程安全的裸违。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市本昏,隨后出現(xiàn)的幾起案子供汛,更是在濱河造成了極大的恐慌,老刑警劉巖涌穆,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怔昨,死亡現(xiàn)場離奇詭異,居然都是意外死亡宿稀,警方通過查閱死者的電腦和手機趁舀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來祝沸,“玉大人矮烹,你說我怎么就攤上這事≌秩瘢” “怎么了奉狈?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涩惑。 經(jīng)常有香客問我仁期,道長,這世上最難降的妖魔是什么竭恬? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任跛蛋,我火速辦了婚禮,結果婚禮上痊硕,老公的妹妹穿的比我還像新娘赊级。我一直安慰自己,他們只是感情好寿桨,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般亭螟。 火紅的嫁衣襯著肌膚如雪挡鞍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天预烙,我揣著相機與錄音墨微,去河邊找鬼。 笑死扁掸,一個胖子當著我的面吹牛翘县,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谴分,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锈麸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了牺蹄?” 一聲冷哼從身側響起忘伞,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沙兰,沒想到半個月后氓奈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡鼎天,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年舀奶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斋射。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡育勺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绩鸣,到底是詐尸還是另有隱情怀大,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布呀闻,位于F島的核電站化借,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捡多。R本人自食惡果不足惜蓖康,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望垒手。 院中可真熱鬧蒜焊,春花似錦、人聲如沸科贬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至优妙,卻和暖如春乘综,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背套硼。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工卡辰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邪意。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓九妈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親雾鬼。 傳聞我的和親對象是個殘疾皇子萌朱,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

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