概念:
如果一个任务去获取一个不可用的信号量时,信号量可以将这个任务推进一个等待队列,去睡眠。CPU可以去干其他的事。当信号量可用时,等待队列中的任务被唤醒,获得该信号量。
与自旋锁比较:
信号量相对于自旋锁===》在或得信号量得情况下可以睡眠。信号量简称睡眠锁。
类型:
计算信号量,二值信号量。
使用:
《1》.初始化
《2》.P 《===获取信号量 (或者down)
《3》.V 《====释放信号量(或者up)
概念:
如果一个任务去获取一个不可用的信号量时,信号量可以将这个任务推进一个等待队列,去睡眠。CPU可以去干其他的事。当信号量可用时,等待队列中的任务被唤醒,获得该信号量。
与自旋锁比较:
信号量相对于自旋锁===》在或得信号量得情况下可以睡眠。信号量简称睡眠锁。
类型:
计算信号量,二值信号量。
使用:
《1》.初始化
《2》.P 《===获取信号量 (或者down)
《3》.V 《====释放信号量(或者up)