[concurrency-interest] Best way to remove a scheduled task with ScheduledThreadPoolExecutor

Joe Bowbeer joe.bowbeer at gmail.com
Tue Oct 10 12:08:39 EDT 2006


After cancel() you *can* call STPE.purge() to remove it ASAP.  But
this is probably not necessary unless you're wasting lots and lots of
tasks.

On 10/10/06, Holger Hoffstätte <holger at wizards.de> wrote:
> Robert Bowen wrote:
> > I am using a ScheduledThreadPoolExecutor to schedule Runnable tasks. I
> > would like to be able to remove tasks as well. I see in the API that
> > ScheduledThreadPoolExecutor has a remove() method which takes a Runnable
> > as a parameter. Fantastic! How do I tell it which Runnable I want to remove?
>
> You cannot - that method does not work as expected and contains an
> internal bug that got fixed in Mustang b71. Check the mailing list
> archives from around last December/January, there was a fairly long
> discussion about this. Summary: just use cancel() on your returned Futures
> - this will let the tasks drop out of the queue eventually.
>
> Holger
>



More information about the Concurrency-interest mailing list