# 多线程

『线程』是更现代化的概念和技术(它的诞生晚于进程)。线程是『进程中』的一个单位,即,一个进程可以有多个线程(至少有一个),简单来说,就是 一对多 的关系

线程是进程中执行运算的最小单元,一个进程在其执行过程中可以产生多个线程,而线程必须在某个进程内执行。

线程是进程内部的一个执行单元,是可以完成一个独立任务的顺序控制流程。如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为『多线程』。

线程和进程既有联系又有区别:

  • 一个进程中至少要有一个线程;

  • 操作系统将资源分配给进程,同一个进程的所有线程共享该进程的所有资源;

  • 操作系统将 CPU 分配给线程,即真正在 CPU 上运行的上线程。

每个线程都有一个『执行方法』(也叫『入口方法』),每个进程至少拥有的、自动拥有的那个线程的执行方法毫无疑问就是 main 方法,因此这个线程也被成为『主线程』。

每个线程的任务、使命就是去执行它的执行方法。线程的执行方法的结束,即意味着线程的生命、使命的完结。

创建并使用线程的过程可以分为 4 个步骤:

  1. 定义一个线程类,同时指明这个线程的执行方法

  2. 创建线程对象

  3. 启动线程

  4. 终止线程

定义一个线程类通常有两种方法:继承 java.lang.Thread 类和实现 java.lang.Runnable 接口。