Tengo un solo objeto de subproceso Objeto ExecutorService. En algún momento en el futuro, las tareas se agregan para hacerse usando el método submit(). Según tengo entendido, enviar presentará el Runnable enviado al final de la lista de tareas pendientes. Sin embargo, tengo una situación en la que, en función de un booleano, es posible que desee enviar el ejecutable al frente de las tareas que se ejecutarán. No quiero que esto afecte la tarea actual, solo que la siguiente tarea será la que acabo de darle. Un ejemplo de método se reproduce a continuación. ¿Cómo hago esto?Java interject Objetos ejecutables en ExecutorService
Gracias
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);
}
Esto es exactamente lo que necesito, gracias – Jon
Mejor que mi solución :) –
Así que solo iba a implementar esto y tengo una pregunta más, ¿cómo exactamente puedo agregar trabajos a la cola? ¿Tengo que anular ThreadPoolExecutor ya que no puedo agregar objetos Runnable a LinkedBlockingDeque? – Jon