原创 單例模式(Singleton)-多線程安全

原文轉自: http://www.tanjp.com (即時修正和更新) 多線程安全的單例模式   單例模式,是一種常用的軟件設計模式。通過單例模式可以保證系統中,應用該模式的一個類型只有一個實例。 多線程環境下,建議使用 sptr()

原创 談極品技術 tanjp.com 文章彙總

談極品技術 tanjp.com 這是一個極品的時代,讓我們一起談談極品時代下的各種信息技術!探索各種服務端技術,如 遊戲服務端,分佈式架構,微服務,大數據採集分析,運維管理和監控,高併發高可用,數據一致性,等等……   遊戲服務端架構

原创 定時器實現過程遇到的問題

原文轉自:http://www.tanjp.com/archives/203 (即時修正和更新)   定時器實現過程遇到的問題 在服務端的程序裏,時間是一個很常用,幾乎無處不在的變量。如果不正確使用時間,將會導致災難性的數據錯誤。所以,正

原创 Actor模式封裝MongoDB C驅動-多連接併發與自動重試

原文轉自:http://www.tanjp.com/archives/192 (即時修正和更新)   Actor模式封裝異步的MongoDB C驅動 MongoDB C驅動(MongoDB C Driver http://mongoc.o

原创 時間輪(Timing Wheel)算法-高性能定時器策略筆記

原文轉自:http://www.tanjp.com/archives/199 (即時修正和更新)   什麼時候需要定時器? 我們都知道程序是能快速運算出結果,幾乎在一瞬間就可以把結果算出來。但是這個前提是所有輸入條件都拿到手的情況下,如果

原创 Actor模式實現高併發的異步文件日誌系統(Actor Log)

原文轉自:http://www.tanjp.com/archives/176 (即時修正和更新)   文件日誌異步讀寫 我們都知道普通的讀寫文件打開文件都是同步的,比如C的fopen, fclose, fread等。並且磁盤的訪問速度遠遠

原创 Actor模式之高性能併發框架的實現

原文轉自:http://www.tanjp.com/archives/149 (即時修正和更新) 概念 Actor模式是一種併發模型,其目標是充分利用計算機多核的優勢,把一個大問題分拆成多個小問題併發處理,或者把多個平行的問題併發處理。一

原创 竊取式調度器(Stealing Scheduler)-高併發

原文轉自:http://www.tanjp.com/archives/141 (即時修正和更新)   竊取式調度器(Stealing Scheduler) N個業務系統生產作業加入到 M+1個隊列裏面(優先加入到當前線程所在隊列),隊列中

原创 雙緩衝安全隊列(DoubleCacheQueue)與自旋鎖(SpinMutex)

原文轉自:http://www.tanjp.com/archives/144 (即時修正和更新)   雙緩衝安全隊列(DoubleCacheQueue) 雙緩衝區,故名思義就是要有兩個緩衝區(簡稱A和B)。這兩緩衝區,總是一個用於生產者,

原创 分配式調度器(Allocation Scheduler)-有鎖與無鎖實現

原文轉自:http://www.tanjp.com/archives/139 (即時修正和更新) 分配式調度器(Allocation Scheduler) N個業務系統生產作業加入到 1個分配隊列裏面,由 1個分配線程負責將隊列中作業分配

原创 搶佔式調度器(Preemptive Scheduler)-有鎖與無鎖實現

原文轉自:http://www.tanjp.com/archives/137 (即時修正和更新)   搶佔式調度器(Preemptive Scheduler) N個業務系統生產作業加入到一個隊列裏面,隊列中的作業被 M個線程搶先消費。也就

原创 高性能仿函數(FixedFunction)-替代std中的function

原文轉自:http://www.tanjp.com/archives/135 (即時修正和更新)   固定大小仿函數(FixedFunction) 仿函數是C++很多新特性的基礎,如 lambda表達式。但是STL提供的std::func

原创 全局唯一標識(UID)-多種實現方案

原文轉自:http://www.tanjp.com/archives/132 (即時修正和更新) 目錄 64位全局唯一標識 62進制字符串唯一ID 32位唯一ID(一年(388天)內的每秒內有128個唯一值) 32位唯一ID(一個月(48

原创 非嚴格優先隊列-O(1) 時間複雜度

原文轉自:http://www.tanjp.com/archives/124 (即時修正和更新)   分組安全隊列 - 非嚴格優先隊列 O(1) 時間複雜度 傳統的優先隊列,都是採用二叉樹(堆)的方式來實現,插入和刪除都需要維護堆頂元素最