1

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

while(true){
}

PS:我只能访问这个执行程序,因为我想通过 jmx 停止这个线程

在我的应用程序中,我添加了这样的新线程:

                taskExecutor.execute(new Runnable() {

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

2 回答 2

0

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

只要您使用提交来添加任务,您就可以使用(从此调用返回)的 Future 任务来取消特定任务。但是,如果您使用执行,您将放弃对任务的控制。

于 2013-10-07T07:44:06.863 回答
0

尝试这个 :

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");
}

这是一篇好文章javaspecialists.co.za/archive/Issue056.html

于 2015-07-01T05:48:56.060 回答