原创 一個研究生畢業後的職業規劃 -----我今年39歲了,25歲研究生畢業,工作14年,回頭看看,應該說走了不少的彎路,有一些經驗和教訓

 我今年39歲了,25歲研究生畢業,工作14年,回頭看看,應該說走了不少的彎路,有一些經驗和教訓。現在開一個小公司,賺的錢剛夠養家餬口的。看看這些剛畢業的學生,對前景也很迷茫,想拋磚引玉,談談自己的看法,侷限於理工科的學生,我對文科的不

原创 C語言中聯合體union的使用

本文編輯整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “聯合體”(union)與“結構體”(struct)有一些相似之處。但兩者有本質上的不

原创 linux多進程下的文件共享(包括每個進程的文件表項的詳細介紹)

1. 文件共享   (1) 每個進程在進程表中都有一個記錄項,記錄項中包含有一張打開文件描述符表,可將其視爲一個矢量,每個描述符佔用一項。與每個文件描述符相關聯的是:       (a) 文件描述符標識(close_on_exec)。  

原创 fork,vfork,clone的區別

fork和clone的區別:   Linux將創建進程和執行所創建的進程分爲2個階段。第一個階段是創建。父進程首先複製子進程,所複製出來的子進程擁有自己的任務結構體和系統堆棧,除此之外所有資源都與父進程共享。Linux提供兩種方式複製子進

原创 十道海量數據處理面試題與十個方法大總結

  第一部分、十道海量數據處理面試題 1、海量日誌數據,提取出某日訪問百度次數最多的那個IP。       首先是這一天,並且是訪問百度的日誌中的IP取出來,逐個寫入到一個大文件中。注意到IP是32位的,最多有個2^32個IP。同樣可

原创 c++之explicit

C++中, 一個參數的構造函數(或者除了第一個參數外其餘參數都有默認值的多參構造函數), 承擔了兩個角色。 1 是個構造器 ,2 是個默認且隱含的類型轉換操作符。 所以, 有時候在我們寫下如 AAA = XXX, 這樣的代碼, 且恰

原创 C++ 初始化列表

何謂初始化列表 與其他函數不同,構造函數除了有名字,參數列表和函數體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。在C++中,struct和class的唯一區別是默認的訪問性不同,而這裏

原创 簡單Linux C線程池

大多數的網絡服務器,包括Web服務器都具有一個特點,就是單位時間內必須處理數目巨大的連接請求,但是處理時間卻是比較短的。在傳統的多線程服務器模型中是這樣實現的:一旦有個請求到達,就創建一個新的線程,由該線

原创 內核態和用戶態的區別

當一個任務(進程)執行系統調用而陷入內核代碼中執行時,我們就稱進程處於內核運行態(或簡稱爲內核態)。此時處理器處於特權級最高的(0級)內核代碼中執行。當進程處於內核態時,執行的內核代碼會使用當前進程的內核棧。每個進程都有自己的內核棧。當進

原创 嵌入式動態內存分配過程

參考:http://blog.chinaunix.net/space.php?uid=20312618&do=blog&cuid=1815216  一、概述:      動態內存分配,特別是開發者經常接觸的Malloc/Free接口

原创 linux生產者消費者(解釋得非常好)

摘要:同步和互斥是進程間很重要的交互模式,而生產者和消費者問題則是同步和互斥的一個景點模型。我認爲理解概念應該結合實際來進行,所以本文以實現生產者和消費者模型的形式來講述同步和互斥。本文先簡單談了個人對同

原创 FIQ和IRQ比較

   FIQ和IRQ是兩種不同類型的中斷,ARM爲了支持這兩種不同的中斷,提供了對應的叫做FIQ和IRQ處理器模式(ARM有7種處理模式)。    一般的中斷控制器裏我們可以配置與控制器相連的某個中斷輸入是FIQ還是IRQ,所以一箇中斷是

原创 阿里HR篩選簡歷

上週發了一個阿里內推的帖子,沒想到短時間內就收到了成百上千封簡歷。我仔仔細細地看了每一封簡歷,附帶有Github地址的我也點進去仔細看了代碼。最終我留下了30%的簡歷,而且這30%中只有10%的本科生。所有通過內推初步篩選的小夥伴會在8月

原创 Linux下IPC總結

IPC進程間通信(Inter-Process Communication)就是指多個進程之間相互通信,交換信息的方法。Linux IPC基本上都是從Unix平臺上繼承而來的。主要包括最初的Unix IPC,System V IPC以及基

原创 線程的同步機制

1、  Event 用事件(Event)來同步線程是最具彈性的了。一個事件有兩種狀態:激發狀態和未激發狀態。也稱有信號狀態和無信號狀態。事件又分兩種類型:手動重置事件和自動重置事件。手動重置事件被設置爲激發狀態後,會喚醒所有等待的線程,