在将它们停放在JVM之前等待线程的最佳实现

时间:2013-06-06 14:57:45

标签: java multithreading scala

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

我尝试过旋转,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+的后退实现。的环境中。

0 个答案:

没有答案