gpt4 book ai didi

multithreading - sem_init(…) : What is the value parameter for?

转载 作者:行者123 更新时间:2023-12-04 04:22:44 25 4
gpt4 key购买 nike

在一个类中,我们不得不使用信号量来完成线程工作。
sem_init 的原型(prototype)(和头文件)如下:

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



但我不明白 value 变量的用途。根据 opengroup.org:

value is an initial value to set the semaphore to



“值(value)就是值(value)......”这有什么帮助,它有什么用?

最佳答案

信号量值表示可在线程之间共享的公共(public)资源的数量。如果该值大于 0,则调用 sem_wait 的线程无需等待。它只是将值减 1 并继续访问公共(public)资源。 sem_post 会将资源添加回池中。所以它将值加 1。如果值为 0,那么我们将等到有人完成 sem_post。

关于multithreading - sem_init(…) : What is the value parameter for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9369873/

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