Java EE:Thread创建线程的五种写法(源码详解)

目录

[1、继承Thread 来创建一个线程类](#1、继承Thread 来创建一个线程类)

[2、实现 Runnable 接口来创建 Thread 类](#2、实现 Runnable 接口来创建 Thread 类)

[3、使用匿名内部类创建 Thread 子类对象](#3、使用匿名内部类创建 Thread 子类对象)

[4、使用匿名内部类创建 Runnable 子类对象](#4、使用匿名内部类创建 Runnable 子类对象)

[5、使用 lambda 表达式创建 Runnable 子类对象](#5、使用 lambda 表达式创建 Runnable 子类对象)


1、继承Thread 来创建一个线程类

java 复制代码
//方法一:继承Thread类

//继承 Thread 来创建一个线程类
class MyThread extends Thread {
    @Override
    public void run() {
        //在这里面写的代码,就是该线程要完成的工作
        System.out.println("线程运行");
    }
}
public class Demo1 {
    public static void main(String[] args) throws InterruptedException {
        //创建 MyThread 的实例
        MyThread thread = new MyThread();

        //调用 start 方法启动线程
        thread.start();
    }
}

2、实现 Runnable 接口来创建 Thread 类

java 复制代码
//方法二: 实现 Runnable 接口

//实现 Runnable 接口
class MyRunnable implements Runnable {
    @Override
    public void run() {
        //在这里面写的代码,就是该线程要完成的工作
        System.out.println("线程运行");    }
}
public class Demo2 {
    public static void main(String[] args) {
        // 创建 Thread 类实例,调用 Thread 的构造方法时将 Runnable 对象作为参数
        Thread thread = new Thread(new MyRunnable());

        //调用 start 方法启动线程
        thread.start();
    }
}

对比方法一与方法二:

1、继承Thread 类,可以直接使用 this 表示当前线程对象的使用。

2、实现 Runnable 接口,this表示的是 MyRunnable 的引用,要表示当前线程对象需要使用 currentThread() 方法。

3、使用匿名内部类创建 Thread 子类对象

java 复制代码
//方法三:使用匿名内部类创建 Thread 子类对象
public class Demo3 {
    public static void main(String[] args) {
        //使用匿名内部类创建 Thread 子类对象
        Thread thread = new Thread() {
            @Override
            public void run() {
                System.out.println("使用匿名内部类创建 Thread 子类对象");
            }
        };
        //启动线程
        thread.start();
    }
}

4、使用匿名内部类创建 Runnable 子类对象

java 复制代码
//方法四:使用匿名内部类 Runnable 子类对象
public class Demo4 {
    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("使用匿名内部类创建 Runnable 子类对象");
            }
        });

        thread.start();
    }
}

5、使用 lambda 表达式创建 Runnable 子类对象

java 复制代码
//方法五:使用 lambda 表达式创建 Runnable 子类对象

public class Demo5 {
    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            //在这里面写的代码,就是该线程要完成的工作
            System.out.println("线程运行");
        });

        //启动线程
        thread.start();
    }
}

较为推荐lambda写法,较为方便~

相关推荐
小成2023032026514 分钟前
Linux高级02
linux·开发语言
camellias_20 分钟前
【无标题】
java·tomcat
知行合一。。。24 分钟前
Python--04--数据容器(总结)
开发语言·python
咸鱼2.037 分钟前
【java入门到放弃】需要背诵
java·开发语言
ZK_H38 分钟前
嵌入式c语言——关键字其6
c语言·开发语言·计算机网络·面试·职场和发展
A.A呐43 分钟前
【C++第二十九章】IO流
开发语言·c++
椰猫子1 小时前
Java:异常(exception)
java·开发语言
lifewange1 小时前
pytest-类中测试方法、多文件批量执行
开发语言·python·pytest
cmpxr_1 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法
2401_827499991 小时前
python项目实战09-AI智能伴侣(ai_partner_5-6)
开发语言·python