Thread pooling in AIO?
Alan.Bateman at Sun.COM
Wed Dec 17 00:55:48 PST 2008
David M. Lloyd wrote:
> Interesting. To me that suggests that there ought to be a special
> Executor or ThreadFactory implementation for the Windows case then -
> one which knows not to kill a thread if there's an outstanding
> operation on it.
The default thread pool does the right thing but we don't have a
solution for the case where the user/application provides the
ExecutorService. A possible hack is to specifically handle the
ThreadPoolExecutor case and invoke its setKeepAliveTime to disable
trimming back of the thread pool. That doesn't solve the issue
completely though as it is possible for a completion handler to
terminate due to an uncaught error or runtime exception. For that case
the thread is allowed to terminate (ensures the uncaught exception
handler is invoked, etc.) but it sets us up for potential side effects.
It has not been a problem to date and clearly this scenario is the
result of a bug somewhere.
More information about the nio-discuss