gpt4 book ai didi

terminology - 什么是计数信号量?

转载 作者:行者123 更新时间:2023-12-02 00:24:45 25 4
gpt4 key购买 nike

您好,我知道计数信号量是如何工作的吗?请帮助我理解。

根据我的理解,如果我们将计数设置为 3,那么进程可以使用 3 个线程来访问资源。所以,这里只有 3 个线程可以访问资源。当 1 个线程离开时,另一个等待线程进来。如果我的理解是正确的,这 3 个线程也可以破坏共享数据。那有什么用呢?

最佳答案

您的观察是正确的;通常,一种资源要么需要限制在一个线程中(例如,它正在被写入),要么可以安全地与无限数量的线程一起使用(例如,它是只读的)。限制资源由 5 个线程使用几乎没有用。

因此,计数为 N 的计数信号量最常用于限制对 N 资源池的访问...当计数达到零时,下一个线程必须等待从池中获取资源。

但是,我通常不觉得这在实践中有用,因为仅仅控制访问资源池的线程的数量 是不够的,您还需要自己管理资源。所以我通常会得到一个阻塞队列,其中包含线程可以从中获取的托管资源。当一个线程用完一个资源时,它将该资源(例如一个对象)返回到队列中,以便等待的线程可以使用它。

队列可能在内部使用信号量来控制对内部缓冲区的访问,但这通常是从队列的用户那里封装的。

另见

关于terminology - 什么是计数信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242539/

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