1. 程式人生 > >UNIX網路程式設計卷一:第三十章 客戶/伺服器程式設計正規化

UNIX網路程式設計卷一:第三十章 客戶/伺服器程式設計正規化

本章介紹了9種,伺服器設計正規化。

程式碼總結: https://github.com/huntinux/unpvol1/tree/master/30chp

使用互斥鎖和條件變數的例子

使用舉例: 30章的 serv08.c 使用了互斥鎖和條件變數。

理解條件變數的關鍵是,弄清楚讓執行緒休眠的條件是什麼,比如server08, 執行緒休眠的條件是 iput == iget

主執行緒在將此條件改變時(修改iput的值),會通知休眠的執行緒。

此外,休眠執行緒在得到此通知時,仍然需要判斷該條件,因為所有休眠的執行緒都會得到此通知,“比較快的”執行緒會首先修改此條件?