原创 信號阻塞

一:關於信號的幾種狀態 1:信號遞達:實際執行信號的處理動作稱爲信號遞達 2:信號未決:,從產生到遞達之間的狀態稱爲未決狀態.進程可以選擇阻塞某個信號,被阻塞的信號產生時將保持未決狀態,直到進程解除對次信號的阻塞,才執行遞達的

原创 進程間通信--消息隊列

一:什麼是消息隊列? 消息隊列提供了一種從一個進程向另一個進程發送一個數據塊的方法.每個數據塊都被認爲是一種類型,接受者進程接收的數據塊可以有不同的類型值.我們可以通過發送消息來避免命名管道的同步與阻塞問題.消息隊列與管道不同的

原创 go語言基本特性

一.自動回收算法又稱gc 以C++爲例子 C++不支持垃圾回收 如 void funv() { int *p = new int[128] foo(p) delete(p) } 由於中間可能會發生執行流的跳轉,導致內存泄漏的問題

原创 設計模式--單例模式

一:概念: 設計模式就是一套被反覆調用,經過分類,代碼設計總結的經驗: 單例模式: 也叫單間模式:Singletion是一種常用的設計模式,在大型的項目中都會使用,因爲構建一個線程安全並且高效的單例模式很重要. 實現單例模式需要滿

原创 Shell腳本語法篇

一:條件測試 1:條件測試:命令test或者是 [ 但是 [ 通常與 ] 一起是使用 我們再來看看結果: 要分析這種現象必須的明確幾個概念,在Shell中,一切都是指令,而test和[是起到條件判斷的作用,在C語言中我們會根

原创 判斷一顆樹是不是完全二叉樹

首先我們要明白完全二叉樹的含義: 完全二叉樹: 若設二叉樹的深度爲h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左 邊,這就是完全二叉樹 我們先來回顧下二叉樹按層遍歷

原创 socket--多進程,多線程服務器

一:概念: 我們知道IP地址是標誌網絡中不用主機的IP地址,而端口號就是同一臺主機上標誌不同進程的地址,IP地址和端口號標誌網絡中的唯一地址.(又稱socket) 在TCP協議中,建⽴立連接的兩個進程各⾃自有⼀一個socket來標識,

原创 C語言如何模擬C++實現繼承和多態

首先要明白c++的三大特性:封裝,繼承,多態 而這些C語言統統都沒有,那麼C語言如何實現繼承和多態呢? C++的繼承屬性是通過訪問限定符:public,protected,private來實現. 我們知道c++的多態必須滿足兩個條件

原创 判斷一個棧的彈出序列是否爲合法序列

題目: 輸出兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序,假設壓入棧的蘇偶偶數字均不相等.例如序列1,2,3,4,5是某棧的壓棧序列.序列4,5,3,2,1是該壓棧序列的一個彈出序列,但4,3,5,1,

原创 刷題--二叉樹的鏡像

題目:請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像 那麼什麼是二叉樹的鏡像呢?我們其實可以從生活中得到啓示,每個人早上起來都有找鏡子的習慣,這樣我們就會很容易想明白二叉樹的鏡像了, 如圖兩顆互爲鏡像的二叉樹. 觀察這顆二叉

原创 5種I/O模型

一:概念的理解: 首先在網絡編程的時候,我們常常見到同步/異步,阻塞/非阻塞四中調用方式: 1同步和異步主要針對C(client)端 同步: 所謂的同步,就是在c端發出一個功能調用時,在沒有得到結果之前,該調用步返回,也就是說必須一

原创 查找最小的K個數

輸出最小的K個數 方案1:如果輸入的數組可變,我們可以藉助Partion部分排序的思想,隨機選k值,經過排序後,k左邊的數都比k小,k右邊的數都比k大,這樣經過排序後,在k左邊的數字就是最小的K個數: int Partion(int*a

原创 查找數組中出現次數超過數組長度一半的數字

,題目: 數組中一個數字出現的次數超過數組長度一半的次數,請找出這個數字,例如輸入一個長度爲9的數組{1,2,3,2,2,2,5,4,2},由於2出現的次數實際5次,超過數組的一半,因此輸出的結果是2.思路:開始的時候想到用map,依次

原创 測試開發面試題

第一次面試還是蠻激動的,就把自己在面試中的問題總結下吧,爲後面做準備吧 1:內存管理(常見的內存錯誤,野指針,棧溢出,以及如何解決吧) 個人回答C語言中三個開闢內存的函數,malloc,calloc,realloc區別以及特點,然後說C+

原创 gdb調試多線程

一:調試 我們知道在Windows下我們常用 F5調到斷點處 ,F9設置斷點或者取消斷點,F 10開始調試或單步執行 F11進入函數內部 F7編譯 Ctrl+F10調到函數內部 當然有時我們也會使用調試窗口或者查看棧幀來進