文章目录
1. 信号量的概念
信号量(信号灯)本质上是一个计数器,是描述临界资源中资源数目的计数器,信号量能够更细粒度的对临界资源进行管理。
每个执行流在进入临界区之前都应该先申请信号量,申请成功就有了操作特点的临界资源的权限,当操作完毕就应该释放信号量。
申请信号量 |
---|
操作特点临界资源 |
释放信号量 |
1.1 信号量的PV操作
多个执行流为了访问临界资源会竞争式的申请信号量,因此信号量是会被多个执行流同时访问的,也就是说信号量本质也是临界资源。
2. 信号量的原理
- 我们将可能会被多个执行流同时访问的资源叫做临界资源,临界资源需要进行保护否则会出现数据不一致等问题;
- 当我们仅用一个互斥锁对临界资源进行保护时,相当于我们将这块临界资源看作一个整体,同一时刻只允许一个执行流对这块临界资源进行访问;
- 但实际我们可以将这块临界资源再分割为多个区域,当多个执行流需要访问临界