gpt4 book ai didi

c - 如何在 Linux 中使用自旋锁?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:02 24 4
gpt4 key购买 nike

我是一名计算机科学专业的学生,​​我有一个作业要求我使用自旋锁来锁定一个线程,并在其关键部分完成后将其解锁。困难是我google了很多次,但我没有找到任何有用的信息。例如,我试图包含像 #include <linux/spinlock.h> 这样的标题, 但是当我使用 gcc 编译这个 c 程序时,它说找不到这样的头文件。那么,为了使用自旋锁,我应该包含什么 header 以及我需要调用什么函数?

最佳答案

linux/spinlock.h 是 Linux kernel header 的一部分。它不是用于 Linux 程序 开发的 header 。

自旋锁仅适用于竞争线程在不同内核上运行的情况。除了内核和某些专门控制哪些线程在哪个内核上运行的专用应用程序之外,您需要的是适当的互斥锁,而不是自旋锁。查找标准库的 pthread 部分,特别是 pthread.h 中声明的 pthread_mutex_xxx 函数。

如果作业特别要求自旋,那么您的目标可能是将实现自旋锁作为学习练习。如何做到这一点取决于您拥有哪些原语:实现自旋锁的原语取决于 CPU,而如何访问它们取决于编程语言(对于 C 语言则取决于编译器)。

关于c - 如何在 Linux 中使用自旋锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40823814/

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