因此,我需要在C中实现线程之间的锁定机制。
某种替代方法:

pthread_mutex_lock
pthread_cond_wait (mostly for synchronization)


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

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

最佳答案

为什么需要替代品,是为了表现,运动还是其他?

spinlock是互斥锁的替代方法,但是没有退避机制,因此您必须忙于等待,通常不建议这样做。 pthread互斥锁被实现为具有futex退避功能的自旋锁。

pthread包含无退缩spinlock,因此您不必自己编写它。

如果这仅是一项运动,并且您可以称之为睡眠,则可以在此基础上有所建树。

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

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

10-11 22:44
查看更多