原创 syslog(),closelog()與openlog()--日誌操作函數

爲了滿足某些目的,進行日誌記錄是很有必要的。 在典型的 LINUX 安裝中,/var/log/messages 包含所有的系統消息,/var/log/mail 包含來自郵件系統的其它日誌消息,/var/log/debug 可能包含調試消

原创 sigsuspend 與sigwait 的區別

sigsuspend 與sigwait 的區別 sigsuspend(const sigset_t *mask):設置阻塞信號爲mask,等待其他信號(除mask之外的信號)的發生,若信號發生且對應的handler已執行,則返回-1,並設

原创 多線程程序裏不準使用fork ?

其實這是 UNIX上C++程序設計守則3 準則3:多線程程序裏不準使用fork 在多線程程序裏,在”自身以外的線程存在的狀態”下一使用fork的話,就可能引起各種各樣的問題.比較典型的例子就是,fork出來的子進程可能會死鎖.請不要,在

原创 關於函數可重入與其線程安全之我討論(二)

可重入函數:       Reentrant Function 線程安全函數:   Thread-Safe Function 可重入和線程安全不是一

原创 關於函數重入和線程安全之我討論(一)

線程安全:一個函數被稱爲線程安全的(thread-safe),當且僅當被多個併發進程反覆調用時,它會一直產生正確的結果。如果一個函數不是線程安全的,我們就說它是線程不安全的(thread-unsafe)。我們定義四類(有相交的)線程不安全

原创 Linux 線程實現機制分析

一.基礎知識:線程和進程 按照教科書上的定義,進程是資源管理的最小單位,線程是程序執行的最小單位。在操作系統設計上,從進程演化出線程,最主要的目的就是更好的支持SMP以及減小(進程/線程)上下文切換開銷。 無論按照怎樣的分法,一個

原创 彙編語言—通用寄存器

通用寄存器的主要用途 寄存器的分類 寄存器 主 要 用 途 通 用 寄 存 器 數據   寄存器 AX 乘、除運算,字的輸入輸出,中間結果的緩存 AL 字節的乘、除運算,字節的輸入輸出,十

原创 非阻塞IO 和阻塞IO:

在網絡編程中對於一個網絡句柄會遇到阻塞IO 和非阻塞IO 的概念, 這裏對於這兩種socket 先做一下說明:        基本概念:               阻塞IO::                      socket

原创 標誌寄存器——標誌位

標誌位簡介:     標誌寄存器,又稱程序狀態寄存器(它的內容是Program Status Word,PSW).這是一個存放條件碼標誌,控制標誌和系統標誌的寄存器. 6個狀態標誌位     CF—進位標誌,加法時的最高位(D7或D1

原创 子進程和線程的區別

1、相同點: (a)二者都具有ID,一組寄存器,狀態,優先級以及所要遵循的調度策略。 (b) 每個進程都有一個進程控制塊,線程也擁有一個線程控制塊。 (c) 線程和子進程共享父進程中的資源;線程和子進程獨立於它們的父進程,競爭使用處理器資

原创 堆和棧的區別

一、預備知識—程序的內存分配     一個由C/C++編譯的程序佔用的內存分爲以下幾個部分     1、棧區(stack)—   由編譯器自動分配釋放   ,存放函數的參數值,局部變量的值等。其   操作方式類似於數據結構中的棧。    

原创 5分鐘搞定內存字節對齊

寫出一個struct,然後sizeof,你會不會經常對結果感到奇怪?sizeof的結果往往都比你聲明的變量總長度要大,這是怎麼回事呢?講講字節對齊吧.   /******************************分割線 如果體系結構

原创 高併發下的系統設計(偏數據庫設計)

高併發完成數據庫設計是要結合不同的應用場景的,本文主要涉及到一下問題: 1、對數據庫表的字段訪問比較均衡,業務導向明顯(網上商城,多條業務線); 2、對數據庫表的字段訪問比較均衡,業務導向不明顯(對單一應用的高併發訪問); 3、對數據庫表

原创 JAVA CAS原理深度分析

參考文檔: http://www.blogjava.net/xylz/archive/2010/07/04/325206.html http://blog.hesey.net/2011/09/resolve-aba-by-atomi

原创 字符數組與字符指針

1.字符指針可以指向一個字符串。 我們可以用字符串常量對字符指針進行初始化。例如,有說明語句: char *str = "This is a string."; 是對字符指針進行初始化。此時,字符指針指向的是一個字符串常量的首地址,即指向