Java 如何通过jmx停止ThreadPoolTaskExecutor中的活动线程

Java 如何通过jmx停止ThreadPoolTaskExecutor中的活动线程,java,spring,task,Java,Spring,Task,在我的应用程序中,我使用的是ThreadPoolTaskExecutor。此执行器包含返回activeThread getActiveCount的方法。是否存在如何停止此活动线程的选项?我不想关闭这个执行器,我只想停止一些无限过程,比如 while(true){ } PS:我有权访问这个执行器,因为我想通过jmx停止这个线程 在我的应用程序中,我正在添加如下新线程: taskExecutor.execute(new Runnable() {

在我的应用程序中,我使用的是ThreadPoolTaskExecutor。此执行器包含返回activeThread getActiveCount的方法。是否存在如何停止此活动线程的选项?我不想关闭这个执行器,我只想停止一些无限过程,比如

while(true){
}
PS:我有权访问这个执行器,因为我想通过jmx停止这个线程

在我的应用程序中,我正在添加如下新线程:

                taskExecutor.execute(new Runnable() {

                    @Override
                    public void run() {
                        doSomething()
                    }
                });

您需要快速检查如何添加任务

只要您使用submit添加任务,您就可以使用此调用返回的Future任务来取消特定任务。但是,如果使用execute,则会重新获得对任务的控制权

试试这个:

public void run() {
    while (true) {
        doSomething();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException ex) {
            //Very important.
            Thread.currentThread().interrupt(); 
            break;
        }
    }
    System.out.println("Shutting down thread");
}
这是一篇好文章