gpt4 book ai didi

c - c 中 sem_init(...) 中 value 参数的不同用法

转载 作者:行者123 更新时间:2023-11-30 20:38:25 31 4
gpt4 key购买 nike

假设我用两种不同的方式初始化信号量

  1. sem_init(&randomsem,0,1)
  2. sem_init(&randomsem,0,0)

现在,

sem_wait(&randomsem) 在这两种情况下都有效

它是否仅适用于 sem_init(&randomsem,0,1),因为使用 sem_wait(&randomsem) 会减少值参数 大于 0,因此如果我的信号量初始化为 sem_init(&randomsem,0,0) ??

哪种说法是正确的?请帮忙!

最佳答案

int sem_init(sem_t *sem, int pshared, unsigned int value);

sem_init初始化sem指向的信号量对象。与信号量关联的计数最初被设置为值。 pshared 参数指示信号量是当前进程的本地信号量(pshared 为零)还是在多个进程之间共享(pshared 不为零)。

第三个参数value,设置信号量的初始值。因此,在第一种情况下,信号量以值 1 开头,在第二种情况下为 0;

关于c - c 中 sem_init(...) 中 value 参数的不同用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29084224/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com