java并发编程中的ExecutorService接口的shutdown方法和shutdownNow方法

shutdown方法用于停止线程池中的任务,但不会停止正在运行的任务;

shutdownNow方法作用类似,不同的是该方法会停止正在运行的方法。

public class shutdown {
    public static void main(String[] args)
    {
        ExecutorService exo=Executors.newFixedThreadPool(10) ;
        for(int i=0;i<=10;i++)
        {
            exo.submit(new Task(i));
        }

exo.shutdown();


        }

}

上面的代码就是创建了一个容量为10的线程池,创建了二十个任务,最后在结束线程池。

在shutdown方法中,线程池会被设定状态,此时无法在想线程池中加入任务。

如果此时向线程池中增加任务,会出现RejectedExecutionException异常。

而shutdownNow 方法中,正在执行的方法会被暂停,还未执行的方法会被退回,暂停任务的方法是通过Thread interrupt实现的。但这种方法的作用有限,如果线程中没有sleep 、wait、Condition、定时锁等应用, interrupt()方法是无法中断当前的线程的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值