background image

Java 程序:用 J2SE1.5 建立多任务的 Java 应用程序

  J2SE 

5.0

中的 Java.util.concurrent 程序包提供了一个新的线程框架组件,这个框架组

件处理了与建立、执行和管理线程相关的很多低层细节信息。在本文中我们将细致地了解
一下它的重要特性。
  如果你使用 C、C++或 Java 先前的版本进行多线程编程,就知道在代码中管理线程是
多么头疼的事情。在单线程程序中,代码中引起应用程序失败的 bug 每次都在同一个点出
现。但是在多线程程序中,只有某些原因遇到一起的时候才会出现失败。由于预见可能引
发应用程序失败的所有条件是非常困难的,所以多线程编程是有挑战性的。有些程序员从
根本上避免这种挑战,而另外一些--聪明的解决问题的人员--则一直坐在他们的计算机面
前直到问题解决。
  J2SE 

5.0

平台包含了一个新的并发工具程序包。这个程序包中的类替并发类

(concurrent classe)或并发设计中使用的应用程序建立阻塞(blocking)。该并发工具包含下面
一些内容:

• 

   高性能的、灵活的线程池

• 

   异步执行事务的框架组件

• 

   为并发访问优化过的集合类宿主(host)
  本文介绍了 J2SE 

5.0

框架组件类和它们的重要特性。本文的下载代码提供了一些简单

的、容易使用的示例,它演示了所有的新线程框架组件类。你在阅读文章内容之后运行这
些示例可以使自己对这些特性有更好的理解。
  Executor(执行器)框架组件
  Executor 框架组件提供了一个简单的、标准的、可扩充的类,它提供了一些有用的功
能,如果没有这些功能,我们要手工实现这些它们,会觉得十分单调和困难。该框架组件
使调用、调度和执行的操作标准化了。它通过一组执行策略为控制异步事务提供了支持。
  Executor 接口执行已提交的可以运行的事务。它提供了一条途径,允许我们把事务提
交从事务执行机制中分离出来。程序员通常使用 Executor 代替显式地(explicitly)建立线程 。
Executor 接口也提供事务的同步和异步执行。
  对于同步执行,使用下面的命令:
Class MySynExecutor 

implements

 Executor

{ 

public

 

void

 execute(Runnable r)

{
r.run(); 
} 
}
 
  对于异步执行,使用下面的命令:
Class MyASynExecutor 

implements

 Executor

{