什么是 Busy spin?我们为什么要使用它?
Busy spin是一种在不释放CPU的基础上等待事件的技术。它经常用于避免丢失CPU的缓存
中的数据(如果线程先暂停,之后再其他CPU上运行就会丢失)。所以,如果你的工作要求
低延迟,并且你的线程目前没有任何顺序,这样你就可以通过循环检测队列中的新消息来代
替调用 sleep() 或 wait() 方法。它唯一的好处就是你只需等待很短的时间,如几微秒或几
纳秒。LMAX 分布式框架是一个高性能线程间通信的库,该库有一个
BusySpinWaitStrategy 类就是基于这个概念实现的,使用 busy spin 循环
EventProcessors 等待屏障。
浙公网安备 33010602011771号