Search code examples
javaeventsdelayrunnablefuture

Why is there no default java implementation of Delayed for DelayQueue?


I'd like a DelayQueue of scheduled Runnables, where each Runnables should only be run after a certain point in time, specified beforehand. Hence a thread can just keep removing runnables from this queue and process a schedule of events. Why is there no good default implementation of Delayed, that is also Runnable, for this?

The only subinterface of Delayed that seems reasonable is RunnableScheduledFuture, which has a whole bunch of random things that need to be implemented. There has to be an easier way to do this, right?


Solution

  • DelayQueue is more of an infrastructure class that's not used directly by application.

    You are probably better off using a ScheduledExecutorService (which internally uses a variant of DelayQueue)