国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java synchronized關(guān)鍵字小測驗

blastz / 2774人閱讀

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

前言

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

實驗過程 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應(yīng)用 3 對http://127.0.0.1:8080/testSyn接口進(jìn)行壓測

vUser設(shè)為99

實驗結(jié)果
無synchronized版

有synchronized版

實驗結(jié)果分析

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

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67200.html

相關(guān)文章

  • 值得保存的 synchronized 關(guān)鍵字總結(jié)

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

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

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

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

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

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

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

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

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

    FuisonDesign 評論0 收藏0

發(fā)表評論

0條評論

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