Java创建线程的两种方式

简介

Java是一种面向对象的编程语言,提供了多线程的支持。线程是程序执行的最小单位,通过使用多线程可以实现并发执行,提高程序的效率。在Java中,有两种常见的方式来创建线程:继承Thread类和实现Runnable接口。本文将详细介绍这两种方式的实现步骤,并提供相应的代码示例。

创建线程的步骤

下表展示了使用两种方式创建线程的步骤。

步骤 继承Thread类 实现Runnable接口
1 创建一个继承自Thread的子类 创建一个实现了Runnable接口的类
2 重写Thread类的run()方法 实现Runnable接口的类需要实现run()方法
3 创建子类的对象 创建实现了Runnable接口的类的对象
4 调用对象的start()方法启动线程 创建Thread类的对象,并将Runnable接口的对象作为参数传递给Thread类的构造函数,然后调用Thread类的start()方法启动线程

接下来,我们将逐步详细介绍每一步所需做的事情,并提供相应的代码示例。

继承Thread类的方式

第一步:创建一个继承自Thread的子类

public class MyThread extends Thread {
    // 子类的代码逻辑
}

第二步:重写Thread类的run()方法

在这个方法中定义线程的逻辑。

public class MyThread extends Thread {
    @Override
    public void run() {
        // 线程的逻辑代码
    }
}

第三步:创建子类的对象

MyThread myThread = new MyThread();

第四步:调用对象的start()方法启动线程

myThread.start();

实现Runnable接口的方式

第一步:创建一个实现了Runnable接口的类

public class MyRunnable implements Runnable {
    // 实现类的代码逻辑
}

第二步:实现Runnable接口的类需要实现run()方法

在这个方法中定义线程的逻辑。

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 线程的逻辑代码
    }
}

第三步:创建实现了Runnable接口的类的对象

MyRunnable myRunnable = new MyRunnable();

第四步:创建Thread类的对象,并将Runnable接口的对象作为参数传递给Thread类的构造函数,然后调用Thread类的start()方法启动线程

Thread thread = new Thread(myRunnable);
thread.start();

总结

通过本文的介绍,我们了解了Java创建线程的两种方式:继承Thread类和实现Runnable接口。无论选择哪种方式,都需要按照相应的步骤进行操作。继承Thread类的方式比较简单,但由于Java只支持单继承,所以如果已经继承了其他类,就不能再使用这种方式来创建线程。相比之下,实现Runnable接口的方式更加灵活,可以避免类的单继承限制。在实际开发中,根据具体需求选择合适的方式来创建线程。

pie
title 创建线程的两种方式
"继承Thread类" : 40
"实现Runnable接口" : 60
gantt
title 创建线程的两种方式的时间表
dateFormat  YYYY-MM-DD
section 继承Thread类
创建子类的对象 : 2022-01-01, 1d
调用对象的start()方法启动线程: 2022-01-02, 1d
section 实现Runnable接口
创建实现了Runnable接口的类的对象 : 2022-01-01, 1d
创建Thread类的对象并启动线程 : 2022-01-02, 1d