EDA365电子论坛网

标题: 二值信号量和计数信号量的区别是什么?系统怎么区分是二值还是计数呢 [打印本页]

作者: abc66    时间: 2022-10-27 10:41
标题: 二值信号量和计数信号量的区别是什么?系统怎么区分是二值还是计数呢
二值信号量和计数信号量的区别是什么?创建函数都是rt_sem_create,那么系统怎么区分我是二值还是计数?# g4 U6 f& N/ h3 X: \
假设我创建了一个 信号量如下) R3 ?2 o: _% S8 E* ]+ I
dynamic_key1 = rt_sem_create(“dsem_key1”, 0, RT_IPC_FLAG_FIFO);
: \, G. u1 R2 h这个信号量是二值还是计数?
& k) z0 u- Z; k( _, O+ ~& L  Y8 ]如果是二值我一直释放信号量会怎么样?0 B8 K$ g7 B2 Z/ J4 h

作者: three    时间: 2022-10-27 11:23
他们没有区别吧,只是信号量的值只为 0和1,称为二值信号量
* d0 r  D, {. i" X
作者: opipo    时间: 2022-10-27 13:10
更多地是使用场景的区别:通常二值信号量用于事件同步,初值为0,等待事件到来;计数信号里用于资源计数,初值为资源数。- {) Y- K8 |; @! u+ X

作者: oponi    时间: 2022-10-27 13:22
基本没有区别,就是数量上有区别,二值就是0或1两个值,计数范围就大了。
2 L( \2 s% k' l' T# g2 N




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2