PriorityBlockingQueue上的原子操作

时间:2016-10-13 14:01:01

标签: java multithreading locks

我想知道哪个线程首先进入了PriorityBlockingQueue。

我正在创建myNode类型的PriorityBlockingQueue。每个myNode都有一个AtomicBoolean锁和一个Priority字段。 myNode基于优先级实现可比较。

我有多个线程正在运行。每个线程一旦启动,将创建其myNode并将其节点添加到PriorityBlockingQueue。

现在我想在第一个线程上以不同的方式处理在PriorityBlockingQueue上执行添加操作。 我可以检查队列是否为空以便知道这个然后是enq,但是有两个线程可能同时检查为空并执行enq操作。 由于优先级约束,即使enq之后此节点的索引也没有帮助。

那么,是否有一些东西可以在PriorityBlockingQueue中提供类似于AtomicBoolean中的getAndSet()的功能。

或者你可以建议我任何其他选择..

谢谢,

0 个答案:

没有答案