信号量初始化赋值问题

信号量初始化赋值问题

信号量初始化赋值为1,是代表每次只允许有一个进程执行吗?

如果赋值大于1是表示允许有多个进程执行吗?

共用体semun中的array数组值的个数需要和信号量个数对应吗?

正在回答

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

1回答

1.信号量的值初始化为1,表示当前可以访问的临界资源(数量)为1,在同一时间里面只能有一个进程或者线程访问,大于1, 是表示有多个可以访问的临界资源,每个资源都某一个时刻都可以被一个进程访问

2.semun array 数组值的个数和需要初始化的信号量个数保持一致,而且顺序一致,数组下标与信号量的编号是一致的

  • 慢慢积累 提问者 #1

    只要信号量初始化的值>1,就可以有多个进程或线程同时间访问,还是说初始化为几,就允许几个线程或进程同时间访问。例如:初始化为2,就有2个进程或线程同时间访问。

    2023-07-30 09:28:54
  • 无__名 回复 提问者 慢慢积累 #2

    可以这么理解,但是不允许两个进程或者线程同时访问同一个资源,如果初始化为2,有两个资源,这个时候有两个进程或者线程分别访问两个资源,不存在资源竞争的情况下,是没有任何问题的

    2023-08-01 20:07:48
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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