有没有办法以同步的方式在DelayQueue中进行民意调查和提供?

时间:2018-03-19 18:23:42

标签: java java.util.concurrent blockingqueue

在我的实现中,我使用DelayQueue来防止对我的方法进行过多的并发访问。我发现DelayQueuelockpoll方法上都使用了内部offer,但就我而言,我需要做类似的事情:

if(Objects.nonNull(delayQueue.poll())) {
   delayQueue.offer(...);
}

那几行代码不是原子的吗?我可以添加自己的ReentrantLock并执行以下操作:

try {
   lock.lock();
   if(poll()) {
      offer(...)
   }
finally {
   lock.unlock();
}

但对我来说这看起来多余,因为我们现在有2个内部调用lock/unlock和一个外部调用。

有更好的方法吗?

0 个答案:

没有答案