本章介绍了9种,服务器设计范式。
代码总结: https://github.com/huntinux/unpvol1/tree/master/30chp
使用互斥锁和条件变量的例子
使用举例: 30章的 serv08.c 使用了互斥锁和条件变量。
理解条件变量的关键是,弄清楚让线程休眠的条件是什么,比如server08, 线程休眠的条件是 iput == iget
主线程在将此条件改变时(修改iput的值),会通知休眠的线程。
此外,休眠线程在得到此通知时,仍然需要判断该条件,因为所有休眠的线程都会得到此通知,“比较快的”线程会首先修改此条件?