原创 《UNIX網絡編程》中第一個timer_server的例子

 1.配置環境     在這裏下載unpv13e.tar.gz,其中包含了《UNIX網絡編程》第一卷的源代碼。假設將其移到~/Unix/Network/目錄下,以下爲配置過程(假設當前目錄爲下載目錄): mv ./unpv13e.t

原创 百度實習生招聘的一道大數據處理題目(下)

       圖4爲排序階段CPU的使用率,可以看到只有一個核達到了100%的利用率。下面爲一個多線程(線程的數量爲核的數量)的排序版本,每個線程只對1G數據中的一部分進行快速排序,排序完成後再由另外一個線程進行歸併,將結果寫入文件。 多線

原创 條件變量的接口函數和使用原則

  條件變量的接口、常量、數據類型 1.靜態創建一個條件變量(棧) pthread_cond_t cond; 2.動態創建一個條件變量(堆) pthread_cond_t * pCond = (pthread_cond_t *)malloc

原创 同步異步線程進程的一些思考

 同步與異步     同步與異步在生活中隨處可見。同步和異步是描述不同事件發生的依賴關係,同步是指這兩個事件的發生有一定的時間順序,異步是指這兩個事件的發生是相互獨立的。     比如去食堂吃飯,你需要先去那餐具(事件A),然後去某個窗口前

原创 百度實習生招聘的一道大數據處理題目(上)

 題目爲:兩個200G大小的文件A和B,AB文件裏內容均爲無序的一行一個正整數字(不超過2^63),請設計方案,輸出兩個文件中均出現過的數字,使用一臺內存不超過16G、磁盤充足的機器。方案中指明使用java編程時使用到的關鍵工具類,以及爲什

原创 門禁系統 隨想

       忽然想起昨天進公寓時刷卡後,還沒將卡放入錢包,門又自動鎖上了。現在去駕校的一個半小時的班車上,忽然想用“意識流”的方法把整個門禁系統的背後原理過一遍。        首先是界面接口,這個活動圖簡單,把卡靠近感應器就行。感應器內

原创 Pthreads線程的基本常識

1.Pthreads中線程的接口函數 與線程相關的頭文件爲pthread.h,編譯時要連接的庫爲pthread。 pthread_t thread; 線程的數據類型爲pthread_t。 int pthread_equal(pthread

原创 我的友情鏈接

51CTO博客開發

原创 我回來了

從現在開始起,堅持寫技術論文。這幾年發生了很多事情,自己也走過來了。希望未來能走得越來越好。

原创 pthread_mutex_t的靜態初始化

 初始化phtread_mutex_t類型的變量時有兩種方法:一種爲使用宏PTHREAD_MUTEX_INITIALIZER進行初始化,另外一種是使用函數pthread_mutex_init函數。第一種方法僅侷限於靜態初始化的時候使用:將“

原创 使用多線程的利弊

 1.Amdahl定律      一個很簡單的量化公式,用來計算一個程序中串行部分所佔多少對程序加速比的影響或者用來計算計算機硬件配置中某個設備的速度提高能夠將整個系統的速度提高多少。      假設一個串行程序執行的總時間爲1,不能被並行

原创 pthread_mutex_t的靜態初始化

 初始化phtread_mutex_t類型的變量時有兩種方法:一種爲使用宏PTHREAD_MUTEX_INITIALIZER進行初始化,另外一種是使用函數pthread_mutex_init函數。第一種方法僅侷限於靜態初始化的時候使用:將“

原创 pthread的屬性對象

  1.概述 屬性對象是爲對象初始化提供額外參數的容器。可以簡單的將屬性對象想象爲一個結構體,不過這個結構體的變量的讀寫需要通過提供的函數而不是用成員訪問符直接操作其成員變量。屬性對象具體可以實現爲結構體的棧變量,然後將訪問函數包裝爲各種宏

原创 對Pthread線程進行簡單的類封裝

        1.封裝遇到的問題        將Pthreads線程封裝爲抽象類,這樣用戶在使用線程時,只需要繼承一下這個抽象類,並實現相應的接口就可以了。這樣做的好處是用戶可以將注意力集中在線程所要執行的邏輯上,而不需要關注創建線程、

原创 win7下重新分區或者使用一鍵還原後不能進入ubuntu系統

    在win7和ubuntu共存的系統中,如果再win7系統下對磁盤重新分區或者使用一鍵還原工具對磁盤備份,都有可能導致系統不能正常引導,經常會提示:unknown filesystem。這篇文章詳細說明了遇到這類問題的解決方法: