原创 劍指offer(一)

文章目錄1.二維數組中的查找2.替換空格3.從尾到頭打印鏈表4.重建二叉樹5.用兩個棧實現隊列6.旋轉數組的最小數字7.斐波那契數列8.跳臺階9.變態跳臺階10.矩形覆蓋 1.二維數組中的查找 解法1: class Solu

原创 LRU實現

LRU(Least Recnetly Used)最近最少使用 淘汰最長時間未被使用的頁面 思路: 依次插入A,B,C: 插入A: 先從哈希表中查找到A的value,存儲的是該節點的地址; 在雙端隊列中將該

原创 Net——EventLoop類(三)、Timer類、TimerId類、TimerQueue類

timestamp相當於整數,保存在寄存器當中,而非堆棧當中 文章目錄1.Timer類(每個抽象定時器對象)2.TimerQueue類3.測試用例 rvo_t

原创 Net——讓EventLoop處理定時器事件

timerfd_create()CLOCK_MONOTONIC:如果人爲將系統時間向後調整,不會觸發定時器 文章目錄1. 定時器函數2. 測試用例 React

原创 Linux高性能服務器編程(五)

文章目錄13 多進程編程13.1 fork系統調用13.2 exec系列系統調用13.3 wait、waitpid系統調用14 多線程編程14.1 內核線程、用戶線程14.2 線程函數14.3 可重入函數(線程安全) 13 多進程

原创 Net——EventLoop類(一)

1.簡化版EventLoopEventLoop.h#ifndefMUDUO_NET_EVENTLOOP_H#defineMUDUO_NET_EVENTLOOP_H#include<boost/nonco

原创 Linux高性能服務器編程(三)

文章目錄7. Linux服務器程序規範7.1. UID、EUID7.2. 進程間關係7.3 查看、修改資源限制7.4 獲取、改變工作目錄7.5 設置後臺進程8. 高性能服務器程序框架8.1 C/S模型8.2 I/O模型8.3 池

原创 Net——EventLoop類(二)、Channel類、Poller類、PollPoller類

Channel的update()會調用EventLoop的updateChannel(),會調用Poller的updateChannel()一個EventLoop包含多個ChannelAcceptor是被動連

原创 Linux高性能服務器編程(四)

文章目錄9. I/O複用9.1 文件描述符(事件)就緒9.2 ET、LT9.3 select、poll、epoll區別10. 信號10.1 信號產生10.2 發送信號10.3 信號默認處理方式:SIG_DFL10.4 標準信號10

原创 Base——LogFile類

1.日誌滾動2.成員變量basename_:~/Documents/build/release-cpp11/bin的basename爲binrollSize_:文件大小達到rollSize_時,換一個文件

原创 Linux高性能服務器編程(二)

文章目錄5.網絡編程api5.1 主機字節序、網絡字節序5.2 創建socket5.3 綁定地址5.4 創建一個監聽隊列來存放待處理的客戶連接5.5 從監聽對列中接受一個連接5.6 發起連接5.7 關閉連接5.8 數據讀寫5.9 獲取

原创 Base——Logger類、LogStream類

、、FixedBuffer類、、LogStream類 文章目錄1.日誌級別2. 使用示例 Log_test1.cc3. 測試用例 LogStrea

原创 Base——ThreadLocal類

1.線程特定數據(Thread-specificData,TSD)在Thread類.中通過__thread來標示屬於線程自己內部數據,但只能適用於POD類型數據,對於其它類型的變量利用POSIX線程庫所提

原创 Base——Singleton類

1.一個公有函數instance(),其餘爲私有pthread_once():intpthread_once(pthread_once_t*once_control, void(*init_routin

原创 Base——ThreadPool類

1.線程池結2.成員變量cond_:通知線程隊列中的線程來取任務threads_:線程隊列,裏面存放的是muduo::Threadqueue_:任務隊列running_:此線程池是否工作muduo新版中添