《Linux多線程服務端編程——使用muduo C++網絡庫》讀書筆記

第一章 線程安全的對象生命期管理html

第二章 線程同步精要編程

第三章 多線程服務器的適用場合與經常使用編程模型安全

第四章 C++多線程系統編程精要服務器

1.(P84)11個經常使用的最基本Pthreads函數:多線程

2個:線程的建立和等待結束(join)。封裝爲muduo::Thread
4個:mutex的建立、銷燬、加鎖、解鎖。封裝爲muduo::MutexLock
5個:條件變量的建立、銷燬、等待、通知、廣播。muduo::Condition

2.(P85)不推薦使用讀寫鎖的緣由是它每每形成提升性能的錯覺(容許多個線程併發讀),實際上在不少狀況下,與使用最簡單的mutex相比,它實際上下降了性能。併發

3.(P85)從理論上講,若是沒有合適的內存模型,編寫正確的多線程程序屬於撞大運行爲,見Hans-J.Boehm的論文《Threads Cannot be Implemented as a Library》:函數

http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf

4.(P86)咱們沒必要擔憂系統調用的線程安全性,由於系統調用對於用戶態程序來講是原子的。可是要注意系統調用對於內核狀態的改變可能影響其餘線程。性能

5.(P86)POSIX標準列出了一份線程安全的黑名單,在這份黑名單中,system、getenv/putenv/setenv等函數都是不安全的。spa

http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09
相關文章
相關標籤/搜索