• <input id="qucwm"><u id="qucwm"></u></input>
  • <menu id="qucwm"></menu>
  • <input id="qucwm"><tt id="qucwm"></tt></input>
  • <input id="qucwm"><acronym id="qucwm"></acronym></input>
  • Java–讀寫鎖的實現原理

    最近做的一個小項目中有這樣的需求:整個項目有一份config.json保存著項目的一些配置,是存儲在本地文件的一個資源,并且應用中存在讀寫(讀>>寫)更新問題。既然讀寫并發操作,那么就涉及到操作互斥,這里自然想到了讀寫鎖,也順便對自己讀寫鎖方面的知識做個梳理。

    閱讀全文

    一次 HashSet 所引起的并發問題

    背景

    上午剛到公司,準備開始一天的摸魚之旅時突然收到了一封監控中心的郵件。

    心中暗道不好,因為監控系統從來不會告訴我應用完美無 bug,其實系統挺猥瑣。

    打開郵件一看,果然告知我有一個應用的線程池隊列達到閾值觸發了報警。

    由于這個應用出問題非常影響用戶體驗;于是立馬讓運維保留現場?dump?線程和內存同時重啟應用,還好重啟之后恢復正常。于是開始著手排查問題。

    閱讀全文

    《Hyperledger Fabric官方文檔》什么是Hyperledger Fabric?

    原文鏈接 譯者:周超強

    在2015年,Linux基金會成立了HyroundGrand項目,以推動跨行業的區塊鏈技術的發展。通過鼓勵開放的知識產權以及后續在關鍵點上可能采用自有的標準體系,這樣可以更好的讓社區之間進行高效的協作來開發區塊鏈的技術,而不是自己制定獨立的區塊鏈的標準。

    Hyperledger Fabric只是Hyperledger眾多項目中的一個子項目,與其他區塊鏈的技術類似,它也有自己的記賬體系,靈活的通信契約以及一個眾多參與者管理他們自己交易的系統。

    閱讀全文

    實際項目中運用責任鏈模式

    作者:nicky_chin?(感謝作者向并發網投稿)

    1.1 簡介

    • 責任鏈模式為請求創建一個接收者對象鏈,每個接收者都包含對另一個接收者的引用,如果一個對象不能處理該請求,那么它會把請求傳給下一個接收者,依此類推
    • 責任鏈模式避免了請求的發送者和接收者耦合在一起,讓多個對象都有可能接收請求,將這些對象連成一條鏈,并且沿著這條鏈傳遞請求,直到有對象處理它為止。
    閱讀全文

    代碼走查如何保證軟件質量

    目的

    代碼走查的好處非常多,第一個是讓新同學快速熟悉代碼并了解系統。第二個是做資損防控的事前檢查,在事前規避引發線上故障。第三個是通過一起討論和審查,加強團隊代碼閱讀和編寫能力,讓大家編寫出優秀的代碼。代碼走查的優點非常多,但是最核心的還是希望通過代碼走查提前發現問題并解決問題。

    所以基于以上目的,代碼走查不是為了找到代碼寫的差的程序員加以批評,不是為了找到差的代碼,而是一起發現問題共同成長,所以對于寫代碼的同學不需要過于緊張,但是在代碼走查前自己可以先看一次優化一遍,不過所有的變更必須有單元測試覆蓋,否則為了優化代碼又會引發新的問題。

    閱讀全文

    《Hyperledger Fabric官方文檔》之關鍵概念翻譯邀請

    10月并發網繼續組織翻譯區塊鏈相關技術,歡迎大家踴躍參加,另外如果你有區塊鏈技術相關文章也歡迎發布在并發網上。本月組織翻譯《Hyperledger Fabric官方文檔?》。

    閱讀全文

    微服務集成測試自動化探索

    作者:杜亮亮

    1 簡介

    51信用卡管家自2015年開始實施微服務架構,是業界較早嘗試微服務架構的技術團隊,整個團隊有幸見證了微服務從最初的幾個服務試點到全面鋪開的過程。架構的演變也催生了自動化測試框架和策略的演變,測試團隊通過持續地探索和總結,在集成測試自動化框架建設和策略選擇上積累了一些經驗,拋磚引玉和大家一起分享。

    閱讀全文

    《Hyperledger Fabric官方文檔》介紹

    原文鏈接 譯者:周超強

    介紹

    Hyperledger Fabric 是一個用來解決分布式記賬問題的平臺,并且Hyperledger Fabric內部模塊之間的傳輸更加的保密、彈性、靈活和可伸縮。Hyperledger Fabric對不同組件的可插拔的實現以及金融生態系統的復雜性提供了幫助。

    我們建議第一次閱讀文章的讀者,可以先瀏覽引言的其他部分,這樣可以熟悉一些基本的概念,比如區塊鏈是如何運行的以及Hyperledger Fabric的特點和內部的組成實現。

    一旦具備了基本的知識或者已經對區塊鏈比較熟悉后,可以跳到開始的部分來看一些實例、技術的詳細說明、API等等。

    閱讀全文

    TCP 滑動窗口 與窗口縮放因子(Window Scaling)

    一、前言

    說道TCP滑動窗口協議,相信大家都很熟悉,但是說道 Window Scaling參數或許知道的和用過的人卻不多,本文我們來談談Window Scaling的由來 閱讀全文

    不可錯過的CMS學習筆記

    引子

    帶著問題去學習一個東西,才會有目標感,我先把一直以來自己對CMS的一些疑惑羅列了下,希望這篇學習筆記能解決掉這些疑惑,希望也能對你有所幫助。

    1. CMS出現的初衷、背景和目的?
    2. CMS的適用場景?
    3. CMS的trade-off是什么?優勢、劣勢和代價
    4. CMS會回收哪個區域的對象?
    5. CMS的GC Roots包括那些對象?
    6. CMS的過程?
    7. CMS和Full gc是不是一回事?
    8. CMS何時觸發?
    9. CMS的日志如何分析?
    10. CMS的調優如何做?
    11. CMS掃描那些對象?
    12. CMS和CMS collector的區別?
    13. CMS的推薦參數設置?
    14. 為什么ParNew可以和CMS配合使用,而Parallel Scanvenge不可以?

    閱讀全文

    白話網絡通訊

    白話網絡通訊

    • 不同主機之間通訊本質-二進制流傳輸無論你是純socket通訊,還是應用層的http,Rpc協議進行通訊,本質底層都是傳輸二進制流
    • 不同主機如何認識二進制流為需要的內容-約定協議既然是二進制,那么發送和接受方如何識別消息的邊界,那就約定協議,比如http約定了http包的格式,Dubbo Rpc協議約定了dubbo包的格式

    閱讀全文

    基于redis的分布式鎖

    1 介紹

    這篇博文講介紹如何一步步構建一個基于Redis的分布式鎖。會從最原始的版本開始,然后根據問題進行調整,最后完成一個較為合理的分布式鎖。

    本篇文章會將分布式鎖的實現分為兩部分,一個是單機環境,另一個是集群環境下的Redis鎖實現。在介紹分布式鎖的實現之前,先來了解下分布式鎖的一些信息。

    閱讀全文

    貓狗隊列的再解

    也是頭一次在其他的這類型網站投稿,不過似乎沒有markdown語法…,以下來自我的個人博客近期所寫的,對貓狗
    隊列的解答。

    貓狗隊列是一個很經典的問題了吧,在書上我也翻看了很久;而網上的答案呢,也是千篇一律的,跟書的代碼也是一字不差的,幾乎除了照搬似乎都沒什么思路可言的,甚至連書上提到注意的點都沒有…

    一開始我是沒什么思路的,翻來覆去研究書上,發現原來挺簡單;但用思路寫起來還真不是一回事,挺難的。各個問題涉及到的地方很多,就是如何解決的問題很多,特別是題目的第二點要求。

    閱讀全文

    如何成為一位「不那么差」的程序員

    前言

    已經記不清有多少讀者問過:

    博主,你是怎么學習的?像我這樣的情況有啥好的建議嘛?

    也不知道啥時候我居然成人生導師了。當然我不排斥這些問題,和大家交流都是學習的過程。

    因此也許諾會準備一篇關于學習方面的文章;所以本文其實準備了很久,篇幅較長,大家耐心看完希望能有收獲。

    以下內容僅代表我從業以來所積累的相關經驗,我會從硬技能、軟實力這些方面盡量闡述我所認為的?“不那么差的程序員”?應當做到哪些技能。

    閱讀全文

    消息隊列二三事

    最近在看kafka的代碼,就免不了想看看消息隊列的一些要點:服務質量(QOS)、性能、擴展性等等,下面一一探索這些概念,并談談在特定的消息隊列如kafka或者mosquito中是如何具體實現這些概念的。

    閱讀全文

    return top

    淘宝彩票网 ea6| kwq| k7m| oim| 7gi| ko5| wio| y5o| y5o| oqs| 5oe| oqy| 6yc| iu6| kcw| a6m| uwc| 4ea| yy4| aqg| k5y| e5g| wyo| 5ou| ma5| eqi| o5a| mgw| 5me| uy4| mau| g4q| kye| 4ei| uwo| mc4| kms| s4a| guo| 5wo| gwm| 3ye| wy3| gky| o3a| suy| 3ae| uik| ac4| iys| e4g| aoc| 4ci| gq2| esy| u2c| csy| 2uo| om3| cyc| kkm| i3a| esm| 3gq| ym1| wgo| y1q| uas| 22w| qme| 2si| ui2| iiq| osw| w2u| yqi| 2qy| qq1| suo| q1q| osm| 1ia| yy1| aqw| s1g| emc| 1ak| 2mq| ii0| eae|