创建线程的几种方式

拓朴苔原
• 阅读 311

在Java中,可以使用以下几种方式来创建线程:

1、继承Thread类:可以创建一个类,继承java.lang.Thread类,并重写run()方法来定义线程代码。然后,可以创建一个新的Thread对象,并调用start()方法来启动线程

class MyThread extends Thread {
    public void run() {
        // 线程代码
    }
}

// 创建新线程并启动
MyThread thread = new MyThread();
thread.start();

2、实现Runnable接口:可以创建一个类,实现java.lang.Runnable接口,并实现run()方法来定义线程代码。然后,可以创建一个新的Thread对象,并将Runnable实例传递给Thread构造函数。

class MyRunnable implements Runnable {
    public void run() {
        // 线程代码
    }
}

// 创建新线程并启动
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();

3、实现Callable接口:可以创建一个类,实现java.util.concurrent.Callable接口,并实现call方法来定义线程代码。然后,可以创建一个新的Thread对象,并将Runnable实例传递给Thread构造函数。

import java.util.concurrent.*;

class MyCallable implements Callable<Integer> {
    public Integer call() throws Exception {
        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            sum += i;
        }
        return sum;
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建线程池
        ExecutorService executor = Executors.newSingleThreadExecutor();

        // 提交可调用任务
        Future<Integer> future = executor.submit(new MyCallable());

        try {
            // 等待计算完成并获取结果
            int result = future.get();
            System.out.println("结果:" + result);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }

        // 关闭线程池
        executor.shutdown();
    }
}

4、使用匿名内部类:可以使用匿名内部类来创建线程,避免创建多个类。可以在Thread构造函数中传递一个Runnable对象的匿名内部类来定义线程代码。

// 创建新线程并启动
Thread thread = new Thread(new Runnable() {
    public void run() {
        // 线程代码
    }
});
thread.start();

5、使用Lambda表达式:可以使用Lambda表达式来创建线程,避免创建多个类。可以在Thread构造函数中传递一个Runnable对象的Lambda表达式来定义线程代码。

// 创建新线程并启动
Thread thread = new Thread(() -> {
    // 线程代码
});
thread.start();
点赞
收藏
评论区
推荐文章
wanQQ wanQQ
3年前
Java学习 Day01 多线程
Java学习Day01多线程Java多线程实现方式有2种1.继承Thread类,重写run方法案例测试类Thread01Javapackagetop.wanqq.thread;/@authorwanqq/publicclassThread01extendsThread@Overridepubli
Wesley13 Wesley13
3年前
java 多线程
创建线程的4种方式1、继承Thread类,复写run方法,run方法中为线程需要执行的逻辑部分,而启动线程调用start方法。小示例见代码,通过Thread.currentThread().getName()可以获得当前线程名称publicclassMyThreadextendsThread{private
Wesley13 Wesley13
3年前
java创建线程的三种方式及其对比
Java(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Flib.csdn.net%2Fbase%2F17)中创建线程主要有三种方式:一、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run(
Wesley13 Wesley13
3年前
java线程
1.进程和线程的区别是什么?进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫轻量级进程。2.创建线程有几种不同方式?你喜欢哪种?为什么?有三种方式可以用来创建线程:继承Thread类实现Runnable接口应用程序可以使用Executor框架来创建线程池实现Runnabl
浪人 浪人
4年前
一篇文章弄懂Java多线程基础和Java内存模型
文章目录一、多线程的生命周期及五种基本状态二、Java多线程的创建及启动1.继承Thread类,重写该类的run()方法2.通过实现Runnable接口创建线程类3.通过Callable和Future接口创建线程三、Java内存模型概念四、内存间的交互操作五、volatile和synchronized的
Wesley13 Wesley13
3年前
Java面试系列
实现多线程的方式继承Thread类,重写run方法,调用start方法启动线程实现Runnable接口,重写run方法,调用start方法启动线程实现Callable接口,重写call方法,并用FutureTask包装,在newThread中传入FutureTask,然后调用start方
Wesley13 Wesley13
3年前
Java创建多线程的几种方式
Java创建多线程的几种方式\TOC\1、继承Thread类,重写run()方法//方式1packagecn.itcats.thread.Test1;publicclassDemo1extendsThread{
Wesley13 Wesley13
3年前
Java多线程学习笔记
Java中创建多线程的三种方法1、继承Thread类创建线程2、实现Runnable接口创建线程3、使用Callable和Future创建线程\
Wesley13 Wesley13
3年前
Java创建多线程的几种方式
Java创建多线程的几种方式\TOC\1、继承Thread类,重写run()方法//方式1packagecn.itcats.thread.Test1;publicclassDemo1extendsThread{
Wesley13 Wesley13
3年前
Java 多线程并发编程面试笔录一览
知识体系图:!(https://oscimg.oschina.net/oscnet/581c0fcdb0afeef1a63ee27ebb88e03ced4.png)1、线程是什么?线程是进程中独立运行的子任务。2、创建线程的方式方式一:将类声明为Thread的子类。该子类应重写Thread
小万哥 小万哥
1年前
深入理解 Java 多线程、Lambda 表达式及线程安全最佳实践
Java线程线程使程序能够通过同时执行多个任务而更有效地运行。线程可用于在不中断主程序的情况下在后台执行复杂的任务。创建线程有两种创建线程的方式。1.扩展Thread类可以通过扩展Thread类并覆盖其run()方法来创建线程:javapublicclas