-2
所以我需要实现线程之间的锁定机制C. 某种替代来:如何在不使用互斥锁,futex和信号量的情况下实现“锁定”机制?
pthread_mutex_lock
pthread_cond_wait (mostly for synchronization)
对于调用pthread_cond_wait,我做了一些研究,发现我可以使用信号:调用sigwait ,一个等待线程的监听...
但我找不到解决方案来锁定对我的共享变量和线程之间的数据的访问。
等调用sigwait可能使用这些原语内部反正。在用户空间中,如果不旋转某些原子变量,您可能无法实现正确的等待。暂停一个线程通常要求您有权访问操作系统线程调度程序或其他低级特权CPU指令。你在为什么开发平台? – jotik
我在Linux上工作 编辑:比较和交换怎么样?它在这种情况下有帮助吗? – user52713
Afaik您不能在Linux中暂停用户空间中的线程。最终需要调用Linux内核来暂停执行线程。唯一的选择是旋转,使用比较和交换或任何其他原子可供您使用。 – jotik