原创 網易---優雅的點

小易有一個圓心在座標原點的圓,小易知道圓的半徑的平方。小易認爲在圓上的點而且橫縱座標都是整數的點是優雅的,小易現在想尋找一個算法計算出優雅的點的個數,請你來幫幫他。 例如:半徑的平方如果爲25 優雅的點就有:(+/-3, +/-4)

原创 堆排序

堆數據結構是一種數組對象,是一棵完全二叉樹, 堆結構的二叉樹存儲結構是: 最大堆:每個父節點數據都大於孩子節點  最小堆:每個父節點數據都小於孩子節點 堆排序:是一種效率很高的排序方法最壞情況下時間複雜度爲O(n*lgn) 1.降序堆排

原创 網易---跳石板

小易來到了一條石板路前,每塊石板上從1挨着編號爲:1、2、3....... 這條石板路要根據特殊的規則才能前進:對於小易當前所在的編號爲K的 石板,小易單次只能往前跳K的一個約數(不含1和K)步,即跳到K+X(X爲K的一個非1和本身

原创 WebBench----簡潔優美的網站壓力測試工具

    WebBench是Linux下的一款網站壓力測試工具,最多可以模擬3萬個併發連接去測試網站的負載能力。     WebBench能測試相同的服務在不同的硬件的性能和不同服務在相同硬件下的性能。 WebBench的下載安裝 1.下

原创 IPC之消息隊列

一、什麼是消息隊列? 消息隊列提供了一種從一個進程向另一個進程發送一個數據塊的方法。  每個數據塊都被認爲含有一個類型,接收進程可以獨立地接收含有不同類型的數據結構。我們可以通過發送消息來避免命名管道的同步和阻塞問題。但是消息隊列與命名管

原创 淺析Linux下的三個時間

前言: windows打開一個文本文件的設置,我們會看到有三個時間: 這三個時間分別標識了windows系統中,這個文件的創建時間、修改時間和訪問時間。           那麼,對於“一切皆文件的”Linux系統呢? 查看Linux下

原创 task_struck結構體成員註釋

 task_struct結構註釋   ==========================   long state 任務的運行狀態(-1 不可運行,0 可運行(就緒),>0 已停止)。   long counter 任務運行時間

原创 淺析HTTP協議

一、http的特點 1.支持客戶/服務器模式 2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET,POST,HEAD。每種方法規定了客戶與服務器的聯繫不同。由於http協議簡單,使得http服務器的程序

原创 三種I/O複用函數的比較總結

下列情況下可以用到I/O多路轉接技術: 1.客戶端程序要同時處理多個socket。(比如非阻塞的connect技術) 2.客戶端程序要同時處理用戶輸入和網絡連接。 3.TCP服務器要同時處理監聽socket和連接socket。(I/O複用

原创 進程間通信---管道

文章模塊: 1.進程間通信的實質2.管道3.管道的特點4.管道的四種情況5.命名管道6.匿名管道的代碼實現7命名管道的代碼實現 一、進程間通信的實質       每個進程都有各自不同的用戶地址空間,任何一個進程的全局變量在另一個進程中都看

原创 I/O複用(三)---epoll機制

epoll實現機制分析: epoll是Linux特有的I/O複用函數。它在實現和使用上與select和poll有很大的差異。首先,epoll使用一組函數來完成任務,而不是單個的函數。其次,epoll把用戶關心的文件描述符上的事件放在內核的

原创 Linux下的軟硬鏈接

一、LInux鏈接概念         Linux鏈接分爲符號鏈接(Symbolic Link)也叫軟鏈接和硬鏈接(Hard Link)兩種,默認情況下,ln命令會產生硬鏈接。 二、軟鏈接         1.創建軟鏈接的命令:ln -

原创 淺析TCP的四種內部計時器

TCP有四種內部計時器 1.時間等待計時器 2.保活計時器 3.重傳計時器 4.持久計時器 一、時間等待計時器      時間等待計時器常用於鏈接終止時,當TCP關閉一個鏈接時,它並不認爲這個鏈接馬上就真正地終止了,在時間等待期間,鏈接還

原创 Linux中的粘滯位

本文內容: 一、前言 二、粘滯位的概念 三、粘滯位的作用 四、粘滯位的簡單分析 五、粘滯位的設置 前言     最近在學習Linux的過程中發現了一個問題,用戶A與用戶B同屬一個組,且一個文件對該組成員具有可寫和可執行的權限,但是用A創建

原创 I/O複用(二)

Linux下實現I/O多路複用的系統調用主要有select、poll和epoll。 這裏主要剖析poll。 1>fds參數是一個pollfd結構類型的數組,它指定所有我們感興趣的文件描述符上發生的可讀、可寫和異常事件,pollfd結構體