gpt4 book ai didi

linux - 将 linux 内核信号量初始化为负数是否合法?

转载 作者:IT王子 更新时间:2023-10-29 01:05:10 28 4
gpt4 key购买 nike

假设我想在 n 个单独的事件发生后唤醒一个任务。将信号量初始化为 1 - n 并向下()它是否合法,所以我在每个事件都向上()它之后醒来?

最佳答案

我不这么认为。

(1) semephore.count 声明为unsigned int。参见信号量定义:

    struct semaphore {
spinlock_t lock;
unsigned int count;
struct list_head wait_list;
};

(2) down() 函数会在减少计数值之前检查计数值,确保计数不为负数。

除非你实现一种机制,否则你不能直接使用信号量来完成你的要求。

关于linux - 将 linux 内核信号量初始化为负数是否合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17982877/

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