Ho un oggetto ExecutorService pool a thread singolo. A un certo momento in futuro verranno aggiunte le attività da eseguire utilizzando il metodo submit(). La mia comprensione è che l'invio invierà aggiungere il Runnable inviato alla fine dell'elenco di attività da eseguire. Tuttavia, ho una situazione in cui, in base a un booleano, potrei voler inviare il runnable alla parte anteriore delle attività da eseguire. Non voglio che ciò influisca sul compito corrente, solo che il prossimo compito sarà quello che ho appena dato. Un metodo di esempio è riprodotto di seguito. Come faccio a fare questo?Interject Java Oggetti eseguibili in ExecutorService
Grazie
private ExecutorService singleLoadPool = Executors.newSingleThreadExecutor();
public void submitTask(Runnable run, boolean doNow) {
if (doNow)
singleLoadPool.submitFront(run); // This is the method I'm looking for
else
singleLoadPool.submit(run);
}
Questo è esattamente ciò di cui ho bisogno, grazie – Jon
Meglio della mia soluzione :) –
Quindi stavo solo andando a implementare questo e ho ancora una domanda, in che modo esattamente aggiungere posti di lavoro alla coda? Devo sovrascrivere ThreadPoolExecutor poiché non posso semplicemente aggiungere oggetti Runnable a LinkedBlockingDeque? – Jon