第一章 線程安全的對象生命期管理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