Java:创建线程的几种方法

本文详细介绍了在Java中通过继承Thread类、实现Runnable接口、匿名内部类以及使用Lambda表达式四种方式创建线程的方法,包括各自的代码示例和原理分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
——————————————————————————————————————————————————————————————————————

主要介绍Java中创建线程的几种方法

方法说明
Thread()创建线程对象
Thread(Runnable target)使用Runnable对象创建线程

1.继承Thread类

Thread类是一个抽象类,可以通过继承Thread类重写其中的run方法,run方法中包括线程要执行的代码
🌰:定义Demo1类继承父类Thread,重写父类中的run方法,对Demo1类进行实例化创建线程对象thread,通过调用strat来启动线程

public class Demo1 extends Thread{
    @Override
    public void run() {
        System.out.println("继承Thread类,创建线程");
    }

    public static void main(String[] args) {
        //创建demo1类的实例
        demo1 thread = new demo1();
        //调用start方法启动线程,启动后有JVM执行run方法
        thread.start();
    }
}

重写Thread类中的run方法,是因为JVM虚拟机执行时需要调用run方法,而原本run方法中并没有实际内容因此要重写。

2.实现Runnable接口

Runnable接口接口中只定义了抽象方法run方法,重写其中的run方法,将实现接口的类的实例传入Thread构造方法中
🌰:定义Demo2类实现Runnable接口,重写run方法,对Demo2类创建实例化对象demo2,创建Thread类实例将Runnable对象作为参数传递。

public class Demo2 implements Runnable{
    @Override
    public void run() {
        System.out.println("实现Runnable接口,创建线程。");
    }

    public static void main(String[] args) {
        //创建实现Runnable接口的实例化对象
        Demo2 demo2 = new Demo2();
        //将实例化对象传入Thread类使用Runnable对象的构造方法中
        Thread thread = new Thread(demo2);
        //上述两行代码可简化为:Thread thread = new Thread(new Demo2());
        //调用start由JVM执行run方法
        thread.start();
    }
}

重写Runnable接口中的run方法,是因为Runnable接口中只有一个run方法,类实现Runnable接口必须重写run方法

3.通过匿名内部类创建Thread、Runnable子类对象

匿名内部类可以避免定义一个继承或者实现接口类的创建,内部类没有名称只能使用一次,创建临时对象

public class Demo3 {
    public static void main(String[] args) {
        Thread thread = new Thread() {
            @Override
            public void run() {
                System.out.println("匿名内部类创建Thread子类对象");
            }
        };
    }
}
public class Demo4 {
    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("匿名内部类实现Runnable接口");
            }
        });
    }
}

4.Lambda表达式(常用的方法)

Lambda表达式是用更简洁的方法替换实现只包含一个抽象方法的接口,将传递构造方法中实现Runnable接口的实例对象用Lambda表达式替代,在表达式外调用start方法由JVM执行表达式中的代码

public class Demo5 {
    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            System.out.println("Lambda表达式");
        });

        thread.start();
    }
}

Lambda表达式:() -> {代码逻辑}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值