Java多线程三种实现方法

文章介绍了Java中实现多线程的三种主要方法:一是继承Thread类,二是实现Runnable接口,三是实现Callable接口并通过FutureTask创建线程。每种方法都有相应的代码示例,展示了如何启动线程以及获取Callable接口的返回值。
摘要由CSDN通过智能技术生成

java实现多线程的方法

提示:java实现多线程主要有三种方式,继承Thread,实现Runnable接口和实现Callable接口



前言

多线程指单个进程(程序)可以并行执行多个线程,在同一时间执行多个线程以提高程序的处理能力和运行效率,并有利于更好地运用系统资源。


提示:以下是本篇文章正文内容,下面案例可供参考

一、多线程主要实现方法

1.继承Thread

实现:创建 Thread01线程测试类 并继承 Thread类


 
public class Thread01 extends Thread{
    @Override
    public void run() {
        System.out.println("HelloWorld");
        System.out.println("【Thread01】线程名:"+Thread.currentThread().getName());
    }

    public static void main(String[] args) {
        Thread01 t01 = new Thread01();
        t01.start();
        System.out.println("【主线程】线程名:"+Thread.currentThread().getName());
    }
}

运行如下:

[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnimg.cn/8d323aa11a48Ap0A13b6844a507c946c6.pg93)(http23aa11a4813b6844a507c9963c6.png)]

2.实现Runnable接口

实现:创建 Thread02线程测试类 并实现Runnable接口

public class Thread02 implements Runnable{
    @Override
    public void run() {
        System.out.println("Runnable");
        System.out.println("【Thread02】线程名:"+Thread.currentThread().getName());
    }

    public static void main(String[] args) {
        Thread02 t02 = new Thread02();
        Thread thread = new Thread(t02);
        thread.start();
        System.out.println("【主线程】线程名:"+Thread.currentThread().getName());
    }
}

运行如下:

在这里插入图片描述

3.实现Callable接口

注意!!!
Callable接口是一个有返回值的线程接口,通过get()获取返回值
并要通过FutureTask包装类来创建线程

实现:创建 Thread03线程测试类 并实现Callable 接口

public class Thread03 implements Callable {
    @Override
    public String call() throws Exception {
        System.out.println("Callable");
        String t03Name = Thread.currentThread().getName();
        return "【Thread03】线程名:"+t03Name;
    }
    
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        Thread03 t03 = new Thread03();
        //通过创建FutureTask类来创建Thread线程
        FutureTask t03Task = new FutureTask(t03);
        new Thread(t03Task).start();
        System.out.println("【主线程】线程名:"+Thread.currentThread().getName());
        //获取Thread03返回来的值
        System.out.println(t03Task.get());
    }
}

运行如下:

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值