摘要:
include/linux/semaphore.hkernel/semaphore.cstruct semaphore { spinlock_t lock; unsigned int count; struct list_head wait_list;};信号量本质上是一个计数器。count不为0时进程可以获得信号量,count为0时进程无法获得信号量,因而可能进入休眠。当count初始为1时,其作用类似于互斥量mutex。但linux中的mutex实现机制已经不再使用semaphore,而使用另一套更简单有效的方法。信号量用于资源可以同时被多个进程使用时的场景。void sema_in... 阅读全文