更改 PriorityBlockingQueue 中的现有任务优先级
Posted
技术标签:
【中文标题】更改 PriorityBlockingQueue 中的现有任务优先级【英文标题】:change existing task prority in PriorityBlockingQueue 【发布时间】:2015-05-28 06:46:30 【问题描述】:如果某个任务已经在阻塞队列中(假设轮询已满)并且我现在希望它具有更高的优先级,我该如何更改它?
E.G:实现这个答案
Specify task order execution in Java
我把线程轮询设置为 3,发送 8 个任务,优先级均为 1。
现在 3 个正在执行,5 个正在等待可用线程。
现在我希望等待列表中的任务号 3 优先级为 2,这意味着当一个线程在另一个 4 之前打开时,它将立即执行。
可以吗?
P.S - 我想在安卓应用上做,推荐吗?
【问题讨论】:
【参考方案1】:如果它已经在PriorityQueue
中,则更改优先级不会影响任何事情。您必须将其移除并重新插入。
【讨论】:
如果是这样,如何删除特定任务?如果执行者已经关闭,可以这样做吗? (一旦所有请求都在队列中,我将其关闭)以上是关于更改 PriorityBlockingQueue 中的现有任务优先级的主要内容,如果未能解决你的问题,请参考以下文章
Queue 阻塞队列 PriorityBlockingQueue