Is there a possibility to set priority to tasks which are executed by Executors? I’ve found some statements in JCIP about it’s possible but I cannot find any example and I cannot find anything related in docs.
From JCIP:
An execution policy specifies the
“what, where, when, and how” of task
execution, including:
- …
- In what order should tasks be executed (FIFO, LIFO, priority order)?
- …
UPD: I realized that I asked not exactly what I wanted to ask. What I really wanted is:
How to use/emulate setting threads priority (i.e. what was thread.setPriority()) with executors framework?
Currently the only concrete implementations of the Executor interface are the ThreadPoolExecutor and the ScheduledThreadpoolExecutor
Instead of using the utility / factory class Executors, you should create an instance using a constructor.
You can pass a BlockingQueue to the constructors of the ThreadPoolExecutor.
One of the implementations of the BlockingQueue, the PriorityBlockingQueue lets you pass a Comparator to a constructor, that way enabling you to decide the order of execution.