成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

java synchronized關鍵字小測驗

blastz / 2790人閱讀

摘要:前言前些天公司線上發(fā)生事故,在排查原因的過程中發(fā)現(xiàn)代碼中出現(xiàn)了關鍵字。究竟關鍵字回性能有多大影響,今天我們來做一個小實驗。因此在單機同時處理個的場景時,關鍵字會對響應時間有明顯的影響。因此在生產環(huán)境建議謹慎使用關鍵字。

前言

前些天公司線上發(fā)生事故,在排查原因的過程中發(fā)現(xiàn)代碼中出現(xiàn)了synchronized關鍵字。在學習java的時候我們都知道synchronized關鍵字的語法含義。多個線程對于同一個對象上的synchronized方法是串行訪問的。它是一把雙刃劍,在防止并發(fā)訪問公共數(shù)據(jù)的同時也對性能產生了影響。究竟synchronized關鍵字回性能有多大影響,今天我們來做一個小實驗。

實驗過程 1 寫兩段簡單的代碼(SpringMVC)
無synchronized版
@RequestMapping("testSyn")
@ResponseBody
public String testSyn() {
    try {
        Thread.sleep(10);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return "ok";
}
有synchronized版
@RequestMapping("testSyn")
@ResponseBody
public synchronized String testSyn() {
    try {
        Thread.sleep(10);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return "ok";
}
用sleep模擬一個需要一小段時間的操作
2 在本機啟動web應用 3 對http://127.0.0.1:8080/testSyn接口進行壓測

vUser設為99

實驗結果
無synchronized版

有synchronized版

實驗結果分析

從上面的結果可以發(fā)現(xiàn)無synchronized的tps約為有synchronized的5倍,且有synchronized關鍵字的版本平均響應時間已經(jīng)超過1秒,嚴重影響了用戶體驗。因此在單機同時處理99個vUser的場景時,synchronized關鍵字會對響應時間有明顯的影響。如果當前的服務是為上層其他應用服務的時候則有可能產生大量超時,進而引發(fā)雪崩效應。因此在生產環(huán)境建議謹慎使用synchronized關鍵字。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/67200.html

相關文章

  • 值得保存的 synchronized 鍵字總結

    摘要:無論是互斥鎖,還是自旋鎖,在任何時刻,最多只能有一個保持者,也就說,在任何時刻最多只能有一個執(zhí)行單元獲得鎖。另外在中引入了自適應的自旋鎖。和關鍵字的總結推薦一 該文已加入開源文檔:JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識)。地址:https://github.com/Snailclimb... 本文是對 synchronized 關鍵字使用、底層原理、JD...

    miguel.jiang 評論0 收藏0
  • Synchronized鎖在Spring事務管理下,為啥還線程不安全?

    摘要:不是線程安全的,那問題出現(xiàn)在哪呢眾所周知,方法能夠保證所修飾的代碼塊方法保證有序性原子性可見性。講道理,如果沒有報錯的話,應該每個線程都對值進行。 前言 只有光頭才能變強。 文本已收錄至我的GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3y 大年初二,朋友問了我一個技術的問題(朋友實在是好學,佩服!) 該問題來源知乎(synchr...

    terro 評論0 收藏0
  • Synchronized 鍵字使用、底層原理、JDK1.6 之后的底層優(yōu)化以及 和ReenTran

    摘要:使用可以禁止的指令重排,保證在多線程環(huán)境下也能正常運行。關鍵字底層原理總結關鍵字底層原理屬于層面。另外在中引入了自適應的自旋鎖。自適應的自旋鎖帶來的改進就是自旋的時間不在固定了,而是和前一次同一個鎖上的自旋時間以及鎖的擁有者 【強烈推薦!非廣告!】阿里云雙11褥羊毛活動:https://m.aliyun.com/act/team1111/#/share?params=N.FF7yxCc...

    Vixb 評論0 收藏0
  • 淺談Java并發(fā)編程系列(七) —— 深入解析synchronized鍵字

    摘要:第一個字被稱為。經(jīng)量級鎖的加鎖過程當一個對象被鎖定時,被復制到當前嘗試獲取鎖的線程的線程棧的鎖記錄空間被復制的官方稱為。根據(jù)鎖對象目前是否處于被鎖定狀態(tài),撤銷偏向后恢復到未鎖定或經(jīng)量級鎖定狀態(tài)。 Synchronized關鍵字 synchronized的鎖機制的主要優(yōu)勢是Java語言內置的鎖機制,因此,JVM可以自由的優(yōu)化而不影響已存在的代碼。 任何對象都擁有對象頭這一數(shù)據(jù)結構來支持鎖...

    piglei 評論0 收藏0
  • 深入理解單例模式

    摘要:總結我們主要介紹到了以下幾種方式實現(xiàn)單例模式餓漢方式線程安全懶漢式非線程安全和關鍵字線程安全版本懶漢式雙重檢查加鎖版本枚舉方式參考設計模式中文版第二版設計模式深入理解單例模式我是一個以架構師為年之內目標的小小白。 初遇設計模式在上個寒假,當時把每個設計模式過了一遍,對設計模式有了一個最初級的了解。這個學期借了幾本設計模式的書籍看,聽了老師的設計模式課,對設計模式算是有個更進一步的認識。...

    FuisonDesign 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<