在Java里 thread 是线程的意思.
  说到线程的概念, 自然离不开另外两个词: 程序和进程.
  从基本的程序讲起:
  一. 什么是程序(Program)
  所谓程序, 是1个严格有序的指令集合. 程序规定了完成某一任务时,计算机所需要做的各种操作, 以及操作的顺序.
  1.1 单道程序运行环境
  所谓单道程序环境是指, 计算机除了操作系统之外, 只允许运行1个用户程序.
  以前的DOS系统是1个典型的单道程序运行环境.
  单道程序有如下特点:
  1. 资源的独占性: 任何时候, 内存内只有1个用户程序, 这个程序独享系统的所有资源.
  2. 执行顺序性: 内存中只执行1个程序, 各程序是按次序执行的, 即是做完1件事后, 才做另一件事.
  绝不可能执行1个程序的中途暂停, 然后去执行另1个程序.
  3.结果的再现性: 只要执行环境和初始条件相同, 重复执行1个程序, 获得的结果总是一样的.
  1.2 多道程序运行环境
  所谓多道程序运行环境是指, 计算机除了操作系统之外, 允许同时运行多个用户程序.
  当今的unix, linux都是典型的多道程序运行环境.
  多道程序有如下特点:
  1. 间断性: 也是cpu会在多个程序之间切换执行, 例如cpu执行程序A一段时间后, 会切换去执行程序B一段时间.
  由于这个时间段很短, 所以对用户造成1个程序A和程序B同时执行的假象.
  2. 失去封闭性:  程序执行受外界影响, 也是多个程序之间共享资源, 互相制约.
  3. 不可再现性:  重复执行时, 可能得到不同的结果. 原因是上面的点, 执行时可能会受到内存中其他程序的影响.
  二. 什么是进程(process)
  进程这个概念是基于多道程序运行环境来讲的.
  1个进程是程序在内存中运行的1个实例
  由于在多道程序运行环境中, 同1个程序可以同时产生两个实例在内存里运行.
  举个简单例子:  例如你可以在操作系统打开两个gvim 文本编辑器, 同时编辑两个不同的文件.
  这时执行ps -ef | grep gvim 会见到系统中有两个名字是gvim的进程, 但是它们的进程id是不同的.
  也是将,  gvim这个程序在内存中生成两个进程同时运行.
  在多道程序运行环境中.  引用进程这个概念来描叙程序在内存里事例, 用来区别于程序本身.
  真正深入了解进程并不简单, 进程其实算是属于操作系统这门课的范畴. 1个进程包括程序段, 数据段, 程序控制块等,  但是作为一个普通的程序猿, 没必要理解得这么深入.
  三. 什么是线程(thread).
  相对地, 我认为作为1个普通的程序猿, 必须深入了解线程这个概念.
  其实, 线程是1个进程的执行路径.
  一般的java程序都是从启动类的main函数入口开始执行, main函数的结束而停止.   这条执行路径是java程序的主线程.
  也是讲:
  线程是相对于进程来讲的, 1个进程至少存在1条线程.
  而java允许多线程编程, 也是1个进程除主线程外,  还允许存在1个或若干个其他线程, cpu会在这些线程当中间断切换执行, 给用户造成同时执行的假象.
  四. 1个单线程java程序的简单例子.
  例子如下:
package Thread_kng;
class S_thrd_1{
public void f(){
while (true){
System.out.printf("Thread main is runing! ");
}
//System.out.printf("f() is done! ");  //compilation fail
}
}
public class S_thread_expl{
public static void g(){
S_thrd_1 s = new S_thrd_1();
s.f();
System.out.printf("g() is done! ");
}
}