Java多线程编程分析

    Java环境下的多线程技术

  构建线程化的应用程式往往会对程式带来重要的性能影响。例如,请考虑这样一个程式,他从磁盘读取大量数据并且在把他们写到屏幕之前处理这些数据(例如一个DVD播放器)。在一个传统的单线程程式(今天所使用的大多数客户端程式)上,一次只有一个任务执行,每一个这些活动分别作为一个序列的不同阶段发生。只有在一块已定义大小的数据读取完成时才能进行数据处理。因此,能处理数据的程式逻辑直到磁盘读操作完成后才得到执行。这将导致非常差的性能问题。

  在一个多线程程式中,能分配一个线程来读取数据,让另一个线程来处理数据,而让第三个线程把数据输送到图像卡上去。这三个线程能并行运行;这样以来,在磁盘读取数据的同时仍然能处理数据,从而提高了整体程式的性能。许多大量的示例程式都能被设计来同时做两件事情以进一步提高性能。Java虚拟机(JVM)本身就是基于此原因广泛使用了多线程技术。

  本文将讨论创建多线程Java代码及一些进行并行程式设计的最佳练习;另外还介绍了对研发者极为有用的一些工具和资源。篇幅所限,不可能全方面论述这些问题,所以我想只是重点提一下极重要的地方并提供给你相应的参考信息。

     线程化Java代码

  所有的程式都至少使用一个线程。在C/C++和Java中,这是指用对main()的调用而启动的那个线程。另外线程的创建需要若干步骤:创建一个新线程,然后指定给他某种工作。一旦工作做完,该线程将自动被JVM所杀死。

posted @ 2011-04-20 22:01  jeanswang博客  阅读(226)  评论(0编辑  收藏  举报