西安芯学苑吧 关注:24贴子:1,065
  • 1回复贴,共1

Java开发中的Busy spin技术,你会吗?

取消只看楼主收藏回复

【芯学苑】
Busy spin技术你知道吗?为什么要使用它?


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


    IP属地:陕西2楼2017-08-25 11:17
    回复