gpt4 book ai didi

linux - 具有极低唤醒延迟的锁

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:51 25 4
gpt4 key购买 nike

我正在编写一个读写器队列,它要求延迟尽可能低。 writer 的频率不够高,不足以让 reader 始终处于忙碌状态,因此在常见的实现中,如果队列为空,reader 就会等待锁并进入休眠状态。当有东西放入队列时,读取器会被唤醒,但这会导致上下文切换并引入延迟。另一种方法是使用自旋锁,但它使用原子操作,本质上锁定在总线上,因此会导致总线上出现大量负载,影响其他作业的性能。

我的问题是,有没有办法让读卡器处于空闲状态,而不释放CPU,同时不会对总线造成重负载,并且每当有东西进入时,它可以退出空闲状态并立即继续。目标是使从放入队列中的内容到读取器开始处理它的延迟尽可能低。我可以为读取器线程分配一个专用的CPU核心,所以当读取器空闲时CPU浪费不是问题。

有什么想法吗?

最佳答案

如果您担心延迟,则无需锁定即可旋转。确保在变量中使用关键字“ volatile ”。

它不会对总线负载或内存绑定(bind)有任何缺点,因为您实际上正在检查 L1/L2/... 缓存。并且缓存在核心之间自动同步。

关于linux - 具有极低唤醒延迟的锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003963/

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