如果您使用的是Linux,请考虑使用Futex。它通过使用原子操作而不是像互斥锁那样的内核调用来提供非锁定实现的性能,但是如果由于某些条件不正确(例如,锁争用)而需要将进程设置为空闲时,它将实现然后进行适当的内核调用以使进程进入睡眠状态,并在以后的事件中将其唤醒。基本上就像一个非常快的信号灯。

如果您使用的是Linux,请考虑使用Futex。它通过使用原子操作而不是像互斥锁那样的内核调用来提供非锁定实现的性能,但是如果由于某些条件不正确(例如,锁争用)而需要将进程设置为空闲时,它将实现然后进行适当的内核调用以使进程进入睡眠状态,并在以后的事件中将其唤醒。基本上就像一个非常快的信号灯。