gpt4 book ai didi

c - 如何在不使用互斥量、futex 和信号量的情况下实现 "locking"机制?

转载 作者:行者123 更新时间:2023-11-30 19:51:49 25 4
gpt4 key购买 nike

所以我需要用C实现线程之间的锁定机制。某种替代方案:

pthread_mutex_lock 
pthread_cond_wait (mostly for synchronization)

对于 pthread_cond_wait,我做了一些研究,发现我可以使用信号:sigwait,等待线程的列表...

但我找不到解决方案来锁定线程之间对共享变量和数据的访问。

最佳答案

为什么你需要一个替代方案,是为了性能、为了锻炼还是其他什么?

一个spinlock是互斥锁的替代方案,但没有退避机制,您必须忙等待,通常不推荐这样做。 pthread 互斥体被实现为带有 futex 回退的自旋锁。

pthread 包含无回退 spinlock所以你不必自己编写。

如果它只是为了练习,并且你可以称之为 sleep ,那么你可以在此基础上构建一些东西。

可以使用自旋锁来锁定一些状态管理变量并模拟条件、信号量等。

关于c - 如何在不使用互斥量、futex 和信号量的情况下实现 "locking"机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35814406/

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