Java 当螺纹死亡时进行操作

Java 当螺纹死亡时进行操作,java,multithreading,Java,Multithreading,我使用的是ThreadPoolExecutor,需要将workerID与每个线程关联,因此当一个线程死亡时,应该删除该ID,当创建新线程时,应该使用该ID。但我如何确保线程死亡。做点什么 不能依靠运行方法完成,因为keepAliveTime为15分钟 有没有办法确保这一点? ThreadFactorynewThread方法如下: public Thread newThread(Runnable r) { Thread thread = new Thread(group, r, (new

我使用的是ThreadPoolExecutor,需要将workerID与每个线程关联,因此当一个线程死亡时,应该删除该ID,当创建新线程时,应该使用该ID。但我如何确保线程死亡。做点什么

不能依靠运行方法完成,因为keepAliveTime为15分钟

有没有办法确保这一点?

ThreadFactory
newThread方法如下:

public Thread newThread(Runnable r)
{
    Thread thread = new Thread(group, r, (new StringBuilder()).append(namePrefix).append(threadNumber.getAndIncrement()).toString(), 0L);
    if(thread.isDaemon())
    {
        thread.setDaemon(false);
    }

    thread.setName((new StringBuilder()).append("Thread name : ").append(name).append(" WorkerId : ").append(getNextWorkerID());
    return thread;
}

getnextworkedid
返回newxtWorkerID。

用一个实现扩展
ThreadPoolExecutor
如何,该实现保持一个
映射,值为workerid?在这个方法中,您可以重写
afterExecute(Runnable,Throwable)
并从
Map
中删除workerID。

这个过程不应该由池本身来处理吗?我想不是,或者我错过了什么?您是否考虑过扩展
线程
类来通知相关方?我认为这可以作为一个例子: