当有多个实例时,如何从另一个线程关闭某个线程

时间:2016-08-11 00:14:15

标签: java multithreading

我正在尝试制作类似Skype的程序。每个调用都有一个接受线程和多个用户线程。如果有两个调用正在运行,并且第一个调用的用户退出,那么我想告诉第一个接受线程停止,但我想保持第二个运行。我尝试将每个接受线程放入“ ArrayList ”,但是当我调用“ interrupt() ”时即使“ isInterrupted() ”方法为真,它也无法正常工作。

1 个答案:

答案 0 :(得分:0)

您的要求不明确仍有建议,您可以选择ExecutorService -

ExecutorService executorService = Executors.newFixedThreadPool(10);
executorService.execute(new Runnable() {
    public void run() {
        System.out.println("Asynchronous task");
    }
});
executorService.shutdownNow();

shutdownNow() ExecutorService方法将尝试(仍使用中断)停止所有正在执行的任务立即,并跳过所有提交的内容但未处理的任务。

您也可以查看Interface Future<V> - https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html

相关问题