当前位置:首页 > Java

java多线程如何实现方法

2026-03-17 19:27:39Java

继承Thread类

创建一个类继承Thread并重写run()方法,通过调用start()启动线程。

class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("Thread running by extending Thread class");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.start();
    }
}

实现Runnable接口

定义一个类实现Runnable接口并实现run()方法,将实例传递给Thread构造函数。

class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("Thread running by implementing Runnable");
    }
}

public class Main {
    public static void main(String[] args) {
        Thread thread = new Thread(new MyRunnable());
        thread.start();
    }
}

使用Lambda表达式

通过Lambda简化Runnable的实现,直接定义run()逻辑。

public class Main {
    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            System.out.println("Thread running via Lambda");
        });
        thread.start();
    }
}

实现Callable接口

结合FutureTask获取线程返回值,适用于需要返回结果的场景。

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

class MyCallable implements Callable<String> {
    @Override
    public String call() throws Exception {
        return "Result from Callable";
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        FutureTask<String> task = new FutureTask<>(new MyCallable());
        Thread thread = new Thread(task);
        thread.start();
        System.out.println(task.get()); // 获取返回值
    }
}

使用线程池(ExecutorService)

通过线程池管理线程生命周期,提高资源利用率。

java多线程如何实现方法

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Main {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(3);
        executor.submit(() -> {
            System.out.println("Task executed by thread pool");
        });
        executor.shutdown();
    }
}

注意事项

  • 避免直接调用run()方法,否则不会启动新线程。
  • 优先选择RunnableCallable,避免单继承限制。
  • 线程同步需使用synchronizedLock解决并发问题。
  • 线程池需显式关闭以防止资源泄漏。

分享给朋友:

相关文章

vue多线程实现run

vue多线程实现run

Vue 多线程实现 Worker 在 Vue 中实现多线程通常通过 Web Worker 完成。Web Worker 允许在后台线程中运行脚本,避免阻塞主线程。 创建 Worker 文件 新建一个…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

vue项目如何实现

vue项目如何实现

安装Vue.js 通过npm或yarn安装Vue.js。确保Node.js环境已配置完成。 npm install vue # 或 yarn add vue 创建Vue项目 使用Vue CLI工具快…

h5如何实现蜡烛点亮

h5如何实现蜡烛点亮

实现蜡烛点亮的H5方法 在H5中实现蜡烛点亮效果,可以通过CSS动画、Canvas绘图或结合JavaScript交互来实现。以下是几种常见的方法: 使用CSS动画和JavaScript 通过…

vue如何实现递归

vue如何实现递归

递归组件的实现方法 在Vue中实现递归组件通常用于渲染树形结构或嵌套数据。核心思路是组件在其模板中调用自身,但需注意终止条件以避免无限循环。 定义递归组件 组件需设置name选项,才能在模板中调用自…

vue如何实现404

vue如何实现404

实现 Vue 404 页面的方法 在 Vue 中实现 404 页面通常需要结合路由配置和动态路由匹配。以下是几种常见方法: 使用通配符路由匹配 在 Vue Router 配置中,可以通过 * 通配符…