在Java中,这些短小的代码段一般会被放到一个类中,然后保存在一个扩展名为.java的文件中;之后生成.class文件,让这个.class文件运行,得到我们想要的结果。比如有一个简单的开宝箱拿礼物的仿游戏程序代码,参考如下:我们在系统中保存为文件,如图。 已经保存到系统中的Java类文件这样,该文件中包含了一个我们要运行的小程序。当你使用Java命令或者点击集成开发环境的运行按钮时,程序就会按照写好的逻辑运行并反馈相关信息。OpenBox的运行结果如图所示。上面这些看似简单的操作,让我们更好的理解了以下几个概念:程序、进程、线程。进程是程序的运行进程。一般来说,一个程序运行一次可以产生一个进程,进程是一个动态的概念。进程的运行需要程序的内容。更准确地说,进程的运行离不开程序,离不开程序中具有特殊含义的文本。其实在运行过程中有一个区域专门用来存放这些文本的,我们称之为代码文本区。程序与进程之间是一对多的关系,即一个程序可以同时运行一个或多个进程。当你点击集成开发环境的运行按钮时,会立即创建一个OpenBox.java对应的进程。通过了解程序和进程之间的关系,可以描述和解释线程。线程是比进程更细的划分级别。一个线程可以使用一个进程拥有的资源,可以独立完成一个任务,如计算、输出和显示信息等。在引入线程的操作系统中,通常以进程作为资源分配的基本单位,而线程则作为独立运行、独立调度的基本单位。进程和线程之间也存在一对多的关系,即至少有一个线程对应一个进程。如果一个进程中同时存在多个线程,则为多线程进程。上面的OpenBox.java程序在运行时,会同时产生一个线程对应一个进程。也就是说,在运行OpenBox.java程序时,这种行为产生的进程是一个单线程进程。程序、进程、线程的关系如图所示。程序、进程、线程关系的知识拓展:近年来,随着大数据的兴起,对大数据的处理要求比传统的普通数据处理要求有了更高的标准,而Java在处理方面也在不断完善的大数据。特别是在开源社区中,很多开发贡献者提供了很多与大数据处理相关的组件和中间件。其中一个组件称为quasar,它实现了Java的纤程。纤程是比线程小一级的划分,占用系统资源少。可以理解为一种特殊的轻量级线程。一般来说,按照占用系统资源的大小,可以排序为:进程>线程>纤程。本文经授权转载自《Java 多线程与大数据处理实战》一书,更多内容请参阅本书。
