ExecutorService的理解和使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ExecutorService的理解和使用相关的知识,希望对你有一定的参考价值。
参考技术AExecutorService表述了异步执行的机制,并且可以让任务在后台执行。一个ExecutorService实例就是一个线程池。
ExecutorService实例
创建ExecutorService是采用Executors工厂方法来创建的。以下有几个例子,代表创建不同的线程池
我们来展示一个线程的任务委托异步执行的ExecutorService的示意图。
[图片上传失败...(image-7aedc5-1577719003067)]
当使用完ExecutorService服务后,我们要关闭它。这样才能保证线程不会继续运行。如果没有关闭掉ExecutorService会导致程序继续保持运行状态,也会导致该进程无法被Java虚拟机关闭,出现可能的内存泄露情况。所以为了关闭ExecutorService中的线程,可以调用shutdown方法。这个方法不会马上关闭线程,而是不再接收新的任务。等到所有的线程都结束执行当前的任务,ExecutorService才会真的关闭。如果希望马上关闭Executorservice,可以调用shutdownNow()。
以上是关于ExecutorService的理解和使用的主要内容,如果未能解决你的问题,请参考以下文章
AbstractExecutorService的submit方法概要介绍
聊聊高并发(三十九)解析java.util.concurrent各个组件(十五) 理解ExecutorService接口的设计