设置信号量的疑问

设置信号量的疑问

https://img1.sycdn.imooc.com/climg/65be680e0922136c07450824.jpg

#define SEM_CONTROL_P 0

#define SEM_CONTROL_C 1

问题1:这里为什么是  unsigned short values[2] = {1,0}; 而不是  unsigned short values[2] = {0,1};?

问题2:为什么会先走父进程的  sem_p(semid,SEM_CONTROL_P);  而不是 子进程的  sem_p(semid,SEM_CONTROL_C);
问题3:这里是不是可以理解为把 信号量集合里面的第 0 个给设置成了 
占用信号量资源?

问题4:老师视频里面说此时 P 是 1? 可是定义的宏 SEM_CONTROL_P 0 不是0 吗?为什么说是1呢?
https://img1.sycdn.imooc.com/climg/65be68e209cf345d09640267.jpg

辛苦老师把这四个问题都进行一下解释 没太看懂



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
无__名 2024-02-04 10:55:55

问题1 - 问题3 :要进行同步,顺序是父进程---> 子进程 ---> 父进程,这个是跟需求有关系,看你的同步顺序是什么样子的,我这边是先父进程 后子进程,所以是初始化{1,0},这样子进程在执行时就不会占用到资源,等待父进程执行完成

问题4 : SEM_CONTROL_P 这个是信号量序号,不是信号量的值,相当于编号为0的信号量的值设置为1 

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师