原创 讀書筆記:只有在事件發生的情況下執行非阻塞才能提高效率

殭屍進程:是指父進程退出之後,而子進程退出之前,該子進程即處於殭屍態. 出現殭屍進程的兩種情況: 1.子進程結束之後系統並不會立即釋放子進程的進程表項,而要等父進程來確認子進程的的退出信息(如果父進程還在),在這子進程退出之後,父進程讀取

原创 時間輪實現定時器(哈西表思想)

時間輪使用了哈西表的思想,將定時器散列到不同的鏈表上,這樣每條鏈表上的定時器的數目將隨插入定時器的數量增多明顯減少,相比較順序鏈表只有一條鏈表來裝入所有定時器而言,哈西表的每條鏈表上的定時器的數量將很少,定時器的插入速度將不受定時器的數量

原创 avl樹的插入操作和刪除操作

avl樹相比於搜索二叉樹每個結點是多了個平衡因子bf,avl樹時時刻刻要維持樹中的每個結點的平衡因子的絕對值小於等於1. avl樹的插入操作: avl樹因爲要保證每個結點的平衡因子要時時刻刻都符合要求,則樹中每插入一個結點,都可能引起平衡

原创 類中的this指針 一個類的指針指向NULL去訪問該類的成員函數

如果一個類的指針指向空,它仍然可以調用某些成員函數,這些成員函數要求在函數內部沒有用到this指針,對於要用到this指針的函數,這個指針去調用會訪問越界. 所以在下面的代碼裏,指針的前兩處調用是打印出了結果,但在第三句處程序崩潰. #i

原创 sizeof 和 strlen 區別

sizeof 是運算符,用來計算類型和靜態分配的對象,結構,數組,的字節大小,在編譯時就已經計算出來來了. 靜態開闢的數組:數組的實際大小. 靜態的對象和結構:對象所佔用的空間. 函數:函數的返回值大小. 指針:存儲指針佔用的空間大小.(

原创 gdb調試coredump

https://blog.csdn.net/qq_39759656/article/details/82858101      

原创 linux進程掛死時候如何定位問題

1、先ps aux 查看進程狀態, D是掛死了(死循環,一直運行) STAT狀態位常見的狀態字符 D 無法中斷的休眠狀態(通常 IO 的進程); R 正在運行可中在隊列中可過行的; S 處於休眠狀態; T 停止或被追蹤; W 進入內存交換

原创 個人分支一個commit點提MR時候出現多個commit點

【問題】假設你在txt_main_2分支修改提交,有一個commit點,然後push到遠端,準備提交到master分支,發現有3個commit點。 【原因】之所以出現多個commit點是因爲,在上一次你的txt_main_1分支同步mas

原创 有虛繼承的類其有幾個虛繼承的基類則該類就有幾個虛表

對於下面的測試代碼(64位系統):C類繼承了A  B 均爲虛類,所以在結果中sizeof(C) 結果爲32 #include<iostream> using namespace std; class A { virtual void te

原创 bstree的插入刪除函數

搜索二叉樹的插入函數: 從根結點去尋找要插入的結點,如果值相等,則插入失敗返回;如果key小於結點值則向左走,如果大於則向右走,直到按這個規則到達樹葉子結點,則爲插入的位置,然後new出這個結點插入. 搜索二叉樹的刪除: 先是從根開始去

原创 紅黑樹刪除操作

紅黑樹刪除操作: 紅黑樹要刪除某個key值時,首先還是要查找該key值在樹中的位置,查找方法和搜索二叉樹方法相同. 要刪除的結點分爲兩種情況: 1.有左右兩個孩子都存在.兩個孩子都存在時,在該節點的右子樹中尋找其直接後繼,找到後用其值替換

原创 linux內核函數之 blk_plug

https://blog.csdn.net/liumangxiong/article/details/10279089   使用: /** * generic_writepages - walk the list of dirty

原创 RBTree的插入操作

紅黑樹的插入操作首先和搜索二叉樹一樣先要找到插入的位置,找到後將節點插入,但是鑑於紅黑樹的性質,插入的節點爲紅色,如果插入位置的父親也爲紅色則紅黑樹的平衡被打破,需要進行調整,具體的分爲以下4種情況: 首先規定插入節點爲X, 其父親節點爲

原创 關於Unix第二卷60頁的mq_open 函數的參數非法問題

utili.h文件: #ifndef _UTILI_H #define _UTILI_H #include<stdio.h> #include<unistd.h> #include<errno.h> #include<stdlib.h>

原创 寄存器爲什麼比內存快

計算機中最快的是寄存器,內存其次,最慢的是硬盤. 1.硬件設計不同: 相比較內存寄存器就是比較稀有的寶貴資源了,所以高性能,高成本,高耗電的設計都用在寄存器上.事實上確實如此,內存設計相對簡單,每個位就是一個電容和一個晶體管,而寄存器設計