0

它应该在停放它之前​​优雅地减慢线程。

我尝试了旋转,Thread.yield()并且LockSupport.parkNanos(1L)

  def backOff() {
    backOffs += 1
    if (backOffs <= spinCount) () // spin
    else if (backOffs <= spinCount + yieldCount) Thread.`yield`()
    else if (backOffs <= spinCount + yieldCount + parkNanosCount) LockSupport.parkNanos(1L)
    else {
      waitingThreads.add(Thread.currentThread())
      LockSupport.park(this)
      backOffs = 0
    }
  }

还有其他方法吗?

寻找适用于不同操作系统和环境上的大多数 JVM 1.6+ 的回退实现。

4

0 回答 0