打印
[学习资料]

什么是信号量

[复制链接]
1586|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2024-4-12 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
信号量(semaphores)的发明可以追述到20世纪60年代中期。使用信号量的最初目的是为了给共享资源建立一个标志,该标志表示该共享资源被占用情况。这样,当一个任务在访问共享资源之前,就可以先对这个标志进行查询,从而在了解资源被占用的情况之后,再来决定自己的行为。在实际生活中,信号量其实无处不在,例如停车场,假如停车场有一百个停车位,那么在没有车辆驶入的情况下信号量就是100,当驶入一辆汽车信号量减1,驶出一辆汽车信号量就加1。当驶入的汽车为100的时候,信号量就会为0,这个时候如果还有汽车准备驶入停车场就无法再获取到信号量了从而禁止驶入。直到有汽车驶出停车场后信号量才会被释放,这个时候之前想要驶入停车场的汽车就会获得刚刚释放的信号量从而准许进入停车场。在实际应用中使用信号量主要是实现以下两个功能:
1. 两个任务之间或者中断函数跟任务之间的同步功能,其实就是共享资源为1的时候。
2. 多个共享资源的管理,就像上面举的停车场的例子。


使用特权

评论回复
沙发
xinpian101| | 2024-4-13 15:19 | 只看该作者
各种名字层出不穷。

使用特权

评论回复
板凳
wanduzi| | 2024-4-16 23:09 | 只看该作者
在玩RTOS呢。

使用特权

评论回复
评论
forgot 2024-4-17 08:42 回复TA
是的 
地板
Belle1257| | 2024-4-25 12:47 | 只看该作者
信号量是一种用于控制对共享资源访问的同步机制

使用特权

评论回复
5
Charlotte夏| | 2024-4-25 13:54 | 只看该作者
在并发编程中,多个线程或进程可能需要同时访问共享资源,为了避免竞争条件和确保数据的一致性,需要使用信号量来进行同步

使用特权

评论回复
6
Emily999| | 2024-4-25 15:12 | 只看该作者
信号量是确保在同一时间只有一个线程或进程可以访问共享资源,避免数据竞争和冲突

使用特权

评论回复
7
Candic12e| | 2024-4-25 16:15 | 只看该作者
其实信号量可以协调多个线程或进程的执行顺序,确保它们按照特定的顺序访问共享资源

使用特权

评论回复
8
Allison8859| | 2024-4-25 17:21 | 只看该作者
信号量可以分为两种类型:二进制信号量和计数信号量

使用特权

评论回复
9
B1lanche| | 2024-4-25 18:26 | 只看该作者
之前知道,二进制信号量:也称为互斥锁,只有两种状态,通常用于实现互斥访问,保证只有一个线程可以访问共享资源

使用特权

评论回复
10
Carmen7| | 2024-4-25 19:32 | 只看该作者
在实际编程中,信号量通常由操作系统提供的API或者编程语言的库函数来实现

使用特权

评论回复
11
alxd| | 2024-4-26 07:22 | 只看该作者
信号量的话,其实开发者可以使用这些API来创建、初始化、增加或减少信号量的值,并在关键代码段中使用信号量进行同步操作

使用特权

评论回复
12
Betty1299| | 2024-4-26 09:03 | 只看该作者
计数信号量:可以有多个状态,用于控制对一组资源的访问,例如线程池中的线程数量

使用特权

评论回复
13
Annie556| | 2024-4-26 11:30 | 只看该作者
总的来说,信号量是一种重要的同步机制,用于确保多个线程或进程之间的协调和共享资源的安全访问

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1762

主题

13167

帖子

55

粉丝