spinlock

spinlock

文章 0 浏览 5

为什么Spinlock不支持递归

我想知道为什么 SpinLock 不支持递归。 假设我有一个带有 Monitor 的简单程序,它以递归方式锁定和释放指令块: class Program { private static read…

梦晓ヶ微光ヅ倾城 2025-01-18 13:13:24 0 0

实现自旋锁与 Win32 临界区

我正在尝试优化 Win32 的 CRITICAL_SECTION 以实现更“复杂”的同步原语,其中我不需要关键部分的重入功能。到目前为止,这是我的自旋锁: class MSpi…

瞄了个咪的 2025-01-14 21:22:24 0 0

如果中断处理程序开始旋转会发生什么?

我正在关注 Linux 设备驱动程序。在介绍自旋锁时,给出了以下示例: 您的驱动程序正在执行,并且刚刚取出了控制对其设备的访问的锁。保持锁定时,设备…

很酷不放纵 2025-01-08 00:16:28 1 0

为什么 Windows XP 和 Windows 7 的自旋锁实现不同?

我知道自旋锁是由 Windows 中的 hal.dll 导出的,因此我对自旋锁的代码进行了逆向工程。结果如下。 Windows XP 的反编译自旋锁。 unsigned __int32 __…

淡淡的优雅 2024-12-27 22:46:39 2 0

为什么是“睡觉”?持有自旋锁时不允许?

可能的重复: 为什么持有自旋锁时不能睡觉? 据我所知要知道,自旋锁应该在短时间内使用,并且只能在不允许休眠(抢占)的中断处理程序等代码中选择…

策马西风 2024-12-11 14:44:26 5 0

使用 cmpxchg 的 x86 自旋锁

我是使用 gcc 内联汇编的新手,想知道在 x86 多核机器上是否可以将自旋锁(无竞争条件)实现为(使用 AT&T 语法): spin_lock: mov 0 eax lock cmpxc…

相守太难 2024-11-27 13:43:43 5 0

自旋锁总是需要内存屏障吗?在内存屏障上旋转是否昂贵?

我编写了一些可以在本地正常工作的无锁代码 在大多数情况下读取。 内存读取上的本地旋转是否必然意味着我 必须始终在旋转之前插入内存屏障 读? (为…

如梦 2024-11-25 20:43:59 6 0

比 pthread 更快的锁定

我们正在构建一个对延迟极其敏感的应用程序。 我们的完整应用程序除了锁定之外,在一个进程中大约需要 2500 个时钟周期,并且需要获取和释放两个锁。 …

嗫嚅 2024-11-24 13:10:33 8 0

iOS线程问题

我通过 NSOparationInvokation 加载图像并在主线程中调用方法,该方法将此图像添加到滚动视图,但应用程序几乎没有滞后。如果我加载图像但不添加它视…

辞别 2024-11-24 03:00:25 5 0

有没有办法让 sem_wait 不旋转?

我目前正在开发跨平台任务调度程序,但在等待信号量时遇到 sem_wait 旋转的问题。在 Windows 上,我使用 WaitForSingleObject,它在等待时生成线程,…

栀子花开つ 2024-10-31 09:43:15 9 0

.NET SpinLock 未释放 Thread.BeginCriticalSection

使用.NET反射器,我发现SpinLock结构有很多情况调用Thread.BeginCriticalRegion并且不调用Thread.EndCriticalRegion >。 例如,在公共函数 SpinLock.E…

绿阴红影里的.如风往事 2024-10-30 09:30:07 9 0

PPC 的 x86 PAUSE 指令的等效项

是否存在与 x86 PAUSE 指令等效的指令,该指令被放置在繁忙的等待循环中以提高性能,特别是在 SMT 机器上、PowerPC 上?…

迎风吟唱 2024-10-26 05:10:31 8 0

x86 暂停指令在自旋锁中如何工作*以及*它可以在其他场景中使用吗?

pause指令通常用在测试spinlock的循环中,当其他一些线程拥有自旋锁,以减轻紧密循环。据说相当于一些NOP指令。有人能告诉我它到底是如何用于自旋锁优…

我一向站在原地 2024-10-12 14:18:17 17 0

如何在 Linux 内核中的列表条目上使用自旋锁?

我正在为 Linux 内核开发一个补丁。我必须使用几个 列表,我必须保护它们免受并发修改 多核机器。我正在尝试使用自旋锁来实现这个目标,但是 有件事我…

老子叫无熙 2024-09-16 16:46:21 15 0

非抢占式 Linux 内核上的 spin_lock

我读到,在具有 1 个 CPU 和非抢占式 Linux 内核 (2.6.x) 的系统上, spin_lock 调用相当于空调用,因此以这种方式实现。 我无法理解:它不应该相当于…

甜心 2024-09-12 00:34:46 15 0
更多

推荐作者

琉璃梦幻

文章 0 评论 0

qq_4zWU6L

文章 0 评论 0

话少情深

文章 0 评论 0

彻夜缠绵

文章 0 评论 0

千寻…

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文