gpt4 book ai didi

linux - 是否必须从系统调用中调用 down(semaphore) 和 down_interruptible(semaphore)?

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:16 29 4
gpt4 key购买 nike

有人问我是否可以使用以下功能:

void down(struct semaphore* sem);
int down_intterruptible(struct semaphore* sem);

仅来自系统调用?

最佳答案

不,它们可以在允许您休眠的任何内核上下文中使用。例如,内核线程可能执行 down()。当然,计时器函数不能,因为 down() 可能会休眠。您绝对不需要直接处理系统调用。

顺便说一句,在现代内核中,struct mutexmutex_lock() 优于 struct semaphoredown() 除非您确实需要计数信号量,或者需要从与获取信号量的位置不同的上下文中释放信号量。

关于linux - 是否必须从系统调用中调用 down(semaphore) 和 down_interruptible(semaphore)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17462691/

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