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

Holger Hoffstätte holger at wizards.de
Tue Oct 10 11:45:28 EDT 2006


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