它应该在停放之前优雅地减慢线程。
我尝试过旋转,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+的后退实现。的环境中。