Thread类实现多线程
Thread类是java.lang包下的一个线程类,用来实现Java多线程。通过继承Thread类的方式来实现多线程非常简单,主要步骤如下:
(1)创建一个Thread线程类的子类(子线程),同时重写Thread类的run()方法;
(2)创建该子类的实例对象,并通过调用start()方法启动线程。
接下来通过一个案例来演示如何通过继承Thread类的方式来实现多线程,如文件1所示。
文件1 Example01.java
1 // 1、定义一个继承Thread线程类的子类
2 class MyThread1 extends Thread {
3 // 创建子线程类有参构造方法
4 public MyThread1(String name) {
5 super(name);
6 }
7 // 1.1、重写Thread类的run()方法
8 public void run() {
9 int i=0;
10 while (i++ <5) {
11 System.out.println(Thread.currentThread().getName()
12 +"的run()方法在运行");
13 }
14 }
15 }
16 public class Example01 {
17 public static void main(String[] args) {
18 // 2、创建MyThread1实例对象
19 MyThread1 thread1=new MyThread1("thread1");
20 // 2.1、调用start()方法启动线程
21 thread1.start();
22 // 创建并启动另一个线程myThread2
23 MyThread1 thread2=new MyThread1("thread2");
24 thread2.start();
25 }
26 }
运行结果如图1所示。
图1 运行结果
文件1中,定义了一个继承Thread线程类的子类MyThread1,并重写了run()方法,其中currentThread()是Thread类的静态方法,用来获取当前线程对象,getName()方法用来获取线程名称。然后在main()方法中分别创建了两个线程实例,并指定线程名称为thread1和thread2,最后通过start()方法启动线程。
从图1可以看出,两个线程对象交互执行了各自重写的run()方法,并打印出对应的输出信息,而不是按照编程顺序先执行完第一个线程方法后才执行第二个线程方法,这就说明程序实现了多线程功能。
注意:
在文件1所示的案例中,从程序运行结果可以看出创建的两个线程实例交互运行,但实际上,该案例中还有一个main()方法开启的主线程,这是程序的入口,仅用于创建并启动了两个子线程实例,并没有执行其他动作输出。