想要学会多线程超简单! 每天5分钟达成!(线程开启的其他方式)

本文介绍了三种Java线程启动方式:通过继承Thread类、实现Runnable接口和使用Callable。重点讲解了Runnable接口的run方法与Callable的call方法的区别,以及如何利用ExecutorService进行线程池管理和任务提交。
摘要由CSDN通过智能技术生成
 public static void main(String[] args) throws ExecutionException, InterruptedException {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("线程的第二种开启方式");
            }
        });
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                System.out.println("Runnable中的run方法执行了");
            }
        };
        //线程开启的第三种方式 
        Callable<Date> callable = new Callable() {
            @Override
            public Date call() throws Exception {
                for (int i = 0; i < 4; i++) {
                    System.out.println(Thread.currentThread().getName()+i);
                }
                return new Date();
            }
        };
        //创建线程池对象
        ExecutorService ex = Executors.newFixedThreadPool(3);
        //ex.execute()此方法只能传入runnable接口
        Future<Date> s = ex.submit(callable);
        //获取call方法中的返回值
        Date date = s.get();
        System.out.println("callable中的返回值:"+date);
        //获取runnable方法中的返回值
        Future<?> s1 = ex.submit(runnable);
        Object o = s1.get();
        System.out.println("runnable接口中的返回值"+o);
        //关闭线程池
        ex.shutdown();
        
    }

第一种方式:编写一个类,直接继承java.lang.Thread 重写run方法

第二种方式,编写一个类实现java.lang.Runnable接口

第三种 Callable
->为了提高效率
Runnble 中 run 没有返回值
而call有返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值