c - 在用户级别 C 中实现信号量

标签 c operating-system semaphore atomic locks

信号量的有效且必要的实现要求它是原子指令。

我在互联网上看到几个用户级 C 实现使用变量(如计数)或数据结构(如队列)实现信号量。但是,涉及变量的指令不作为原子指令运行。那么谁能在用户级别 C 中实现信号量。

一个c库semaphore.h是如何实现semaphore的?

最佳答案

答案几乎肯定是“它不会”——相反,它将调用提供必要原子操作的内核服务。

关于c - 在用户级别 C 中实现信号量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33361384/

相关文章:

c - 在 C 中用 fgets 逐行读取文件,大小读取无效

linux - postgresql:读取器进程消耗高 cpu

c - 相当于 posix 信号量的 Sys V SEM_UNDO

c - 使用信号量在 Sleeping Barber 中打印

c# - 为什么信号量不等待

c - 我应该使用 printf ("\n") 还是 putchar ('\n' ) 在 C 中打印换行符?

c - `__value` 是 gcc 扩展吗?如果是,它有什么作用?它有等效的 VC++ 吗?

c - 找出特定目录所在的文件系统大小和名称

winapi - 在 WindowsNT(最近的 x86 版本,Vista 和 Win7)下从用户模式切换到内核模式时,线程做了什么?

memory-management - 如何使用基址寄存器、限制寄存器和重定位寄存器?