我正在使用缓存线程池 ExecutorService 来运行一些异步后台任务。我已经提供了我的 ThreadFactory,它将线程分发给 ExecutorService(只要它需要它们)。我对缓存线程池的理解是,在线程空闲 60 秒后,它会被 ExecutorService 终止。
当我的线程即将终止时,我想执行一些状态清理。实现这一目标的最佳方法是什么?ExecutorService 不会轻易地提供进入线程生命周期的钩子。
我不想关闭我的 ExecutorService - 这对于在任务到来时运行任务很有用。
ExecutorService executor = Executors.newCachedThreadPool(new MyThreadFactory());
// Do some work
executor.submit(new MyCallable());
// Need a way for the ExecutorService to notify me when it is about to
// terminate my thread - need to perform some cleanup
谢谢,
什雷亚斯