gpt4 book ai didi

algorithm - 您是否曾经使用非二进制信号量来解决非学术任务?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:16 25 4
gpt4 key购买 nike

这可能很愚蠢,但我正在寻找使用计数或大于 1 的信号量的软件的所谓“现实生活”示例。

换句话说,请不要使用保镖、图书管理员或厕所示例。

最佳答案

我想我已经将类似的东西用于“读/写”锁。也就是说,我想同时允许最多 N 个读者,并且在没有活跃读者的情况下一次只允许一个作者。

因此任何读取线程都会锁定信号量并增加读取计数。如果读取计数小于 N,则锁定成功并且读取器可以继续。如果不是,则锁会导致读取线程 sched_yield。

如果我想锁定写入,我将计数设置为 N 以便没有更多的读者可以锁定 - 例如当他们尝试锁定时,他们都开始 sleep 。写线程不断尝试锁定读信号量。每次有读者释放时,作者再次递增 N,直到没有更多的读者。

然后写锁成功,写操作发生,读信号量被设置回零,以便读线程可以继续。

关于algorithm - 您是否曾经使用非二进制信号量来解决非学术任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11177680/

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