原创 Linux下線程安全與可重入函數

本文參考《深入理解計算機系統》原書第三版第12章 併發編程 1 線程安全的概念    一個函數被稱爲線程安全的(thread-safe),當且僅當被多個併發線程反覆調用時,它會一直產生正確的結果。如果一個函數不是線程安全的,我們就說它

原创 Linux下父進程異步等待子進程

1. 背景知識   我們可以使用wait和waitpid函數清理僵死進程,父進程可以阻塞等待子進程結束,也可以非阻塞地查詢是否有子進程結束等待清理(也就是輪詢的方式)。採用第一種方式,父進程阻塞了就不能處理自己的工作了;採用第二種方式,

原创 Linux下線程的概念和使用

一. 概念   首先Linux並不存在真正的線程,Linux的線程是使用進程模擬的。當我們需要在一個進程中同時運行多個執行流時,我們並不可以開闢多個進程執行我們的操作(32位機器裏每個進程認爲它 獨享 4G的內存資源),此時便引入了線程