定時器都知道吧?個人認為是linux最核心的功能之一了!比如線程sleep(5000),5s后再喚醒執行,cpu是怎么知道5s的時間到了?還有nginx這種反向代理每隔一段時間都要檢測客戶端的是否還在,如果掉線了就沒必要再分配資源維護連接關系啦。那么間隔固定時間檢測心跳的定時機制是怎么實現 ...
紅黑樹是一種非常重要的數據結構,有比較明顯的兩個特點: 插入 刪除 查找的時間復雜度接近O logN ,N是節點個數,明顯比鏈表快 是一種性能非常穩定的二叉樹 中序遍歷的結果是從小到大排好序的 基於以上兩個特點,紅黑樹比較適合的應用場景: 需要動態插入 刪除 查找的場景,包括但不限於: 某些數據庫的增刪改查,比如select from xxx where 這類條件檢索 linux內核中進程通過紅 ...
2022-01-13 21:42 0 1471 推薦指數:
定時器都知道吧?個人認為是linux最核心的功能之一了!比如線程sleep(5000),5s后再喚醒執行,cpu是怎么知道5s的時間到了?還有nginx這種反向代理每隔一段時間都要檢測客戶端的是否還在,如果掉線了就沒必要再分配資源維護連接關系啦。那么間隔固定時間檢測心跳的定時機制是怎么實現 ...
1、在現代的操作系統中,進程調度是最核心的功能之一;linux 0.11的調度算法簡單粗暴:遍歷task_struct數組,找到時間片counter最大的進程執行;顯然這種策略已經不適合越來越復雜的業務場景需求了,所以后來逐步增加了多種調度策略,目前最廣為人知的調度策略有5種:cfs、idle ...
1、簡單介紹一下epoll的出現的背景:這里以java代碼為例,最原始的server代碼如下: 單線程中,一個死循環不停地接受客戶端的連接和數據;上述代碼有兩個“卡點”:第一個 ...
1、linux內核中利用紅黑樹增刪改查快速、穩定的特性來管理的還有另一個非常重要的功能:虛擬內存管理!前面介紹了buddy和slab算法是用來管理物理頁面的。由於早期物理頁面遠比虛擬頁面小很多,而且只需要分配和回收合並,所以也沒用樹形結構來組織,簡單粗暴地用鏈表來管理!但是虛擬內存不一樣 ...
1 紅黑樹的定義 (1)每個節點或者為黑色,或者為紅色。 (2)根必須為黑色。 (3)每個葉子節點(不包含關鍵字的節點)都是黑色。 (4)如果有一個節點是紅色,那么它的兩個兒子都是黑色。 (5)對於每個節點,從該節點出發到其子孫節點的所有路徑上包含 ...
子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。平衡二叉樹的常用實現方法有紅黑樹、AVL、替 ...
前言 最近斷斷續續花了一個禮拜的時間去看紅黑樹算法,關於此算法還是比較難,因為涉及到諸多場景要考慮,同時接下來我們要講解的HashMap、TreeMap等原理都涉及到紅黑樹算法,所以我們不得不了解其原理,關於一些基礎知識這里不再講解,本文參考博文:《https://www.cnblogs.com ...