ExecutorService让我们可以优雅地在程序中使用线程池来创建和管理线程,而且性能佳、开销小,还可以有效地控制最大并发线程数,是我们在java并发编程中会经常使用到的。 每一个线程都会占用系统资源,因此线程池的关闭与清理同样重要,本文介绍我们如何优雅地关闭线程池。
Runnable没有返回值;Callable可以返回执行结果(泛型)。Runnable异常只能在内部处理,不能往上继续抛出;Callable接口的call()方法允许抛出异常。Callable需要配合FutureTask或Future使用。
相比new Thread,Java提供的四种线程池的好处在于:a. 重用存在的线程,减少对象创建、消亡的开销,性能佳。b. 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。c. 提供定时执行、定期执行、单线程、并发数控制等功能。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号