多线程是Java语言的一个重要特征,利用多线程技术可以使系统同时运行多个程序块,缩短了程序的响应时间,提高了计算机资源的利用率,达到了多任务处理的目的。
进程与线程
- 进程:进程是程序的一次动态执行过程,每个程序都有自己独特的内存空间,一个应用程序可以启动多个应用空间,我们拿Chrome来举例。
- 线程:线程是进程中的一个执行流程,一个进程可以由多个线程组成,即一个进程中可以同时运行多个不同的线程,每个线程完成不同的任务。
没有进程就不会有线程,进程与线程是整体与局部的关系,进程与线程的关系如图1-1所示。
线程的生命周期
线程在完整的生命周期中要经历5种状态,分别是新建、就绪、运行、阻塞和死亡。状态关系如图1-2所示。
实现线程的两种方式
- 继承Thread类
在java.lang包中定义了Thread类,一个类继承了Thread类,此类就称为多线程实现类。
例子:
Test_Thread.java
package com.hcybx;
public class Test_Thread extends Thread{
//继承Thread
private String name;
public Test_Thread(String name) {
this.name = name;
}
public void run() {
//覆盖Thread中的run()方法
for (int i = 1; i < 5; i++) {
System.out.println(name+"运行,i="+i);
}
}
}
Test.java
package com.hcybx;
public class Test {
public static void main(String[] args) {
Test_Thread tt1 = new Test_Thread("A");//实例化线程对象
Test_Thread tt2 = new Test_Thread("B");
Test_Thread tt3 = new Test_Thread("C");
Test_Thread tt4 = new Test_Thread("D");
Test_Thread tt5 = new Test_Thread("E");
Test_Thread tt6 = new Test_Thread("F");
Test_Thread tt7 = new Test_Thread("G");
Test_Thread tt8 = new Test_Thread("H");
tt1.run();//启动多线程
tt2.run();
tt3.run();
tt4.run