第四章 线程执行者(一)引言

声明:本文是《 Java 7 Concurrency Cookbook 》的第四章,作者: Javier Fernández González     译者:许巧辉     校对:方腾飞

在这个章节中,我们将覆盖:

引言

通常,当你在Java中开发一个简单的并发编程应用程序,你会创建一些Runnable对象并创建相应的Thread对象来运行它们。如果你开发一个运行多个并发任务的程序,这种途径的缺点如下:

  • 你必须要实现很多相关代码来管理Thread对象(创建,结束,获得的结果)。
  • 你必须给每个任务创建一个Thread对象。如果你执行一个大数据量的任务,那么这可能影响应用程序的吞吐量。
  • 你必须有效地控制和管理计算机资源。如果你创建太多线程,会使系统饱和。

为了解决以上问题,从Java5开始JDK并发API提供一种机制。这个机制被称为Executor framework,接口核心是Executor,Executor的子接口是ExecutorService,而ThreadPoolExecutor类则实现了这两个接口。
这个机制将任务的创建与执行分离。使用执行者,你只要实现Runnable对象并将它们提交给执行者。执行者负责执行,实例化和运行这些线程。除了这些,它还可以使用线程池提高了性能。当你提交一个任务给这个执行者,它试图使用线程池中的线程来执行任务,从而避免继续创建线程。

Callable接口是Executor framework的另一个重要优点。它跟Runnable接口很相似,但它提供了两种改进,如下:

  • 这个接口中主要的方法叫call(),可以返回结果。
  • 当你提交Callable对象到执行者,你可以获取一个实现Future接口的对象,你可以用这个对象来控制Callable对象的状态和结果。

在这章中提供了11个指南,展示了如何通过使用前面提及的类和Java并发API来处理Executor framework。

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/140950.html

(0)
上一篇 2021年9月5日 19:31
下一篇 2021年9月5日 19:31

相关推荐

发表回复

登录后才能评论