美文网首页java线程探索
线程的创建-三种方式

线程的创建-三种方式

作者: 朽木亦自雕 | 来源:发表于2019-02-18 15:50 被阅读4次

三种创建方式

一:继承Thread方式

class ThreadA extends Thread{
       @Override
       public void run(){
            System.out.println("通过 继承Thread类 方式实现 ")
       }
}

二:实现Runnable接口

class ThreadB implements Runnable{
    @Override
       public void run(){
            System.out.println("通过 实现Runnable接口 方式实现 ")
       }
}

三:实现Callable接口实现

class ThreadC implements  Callable<String>{
        @Override
        public String call() {
            System.out.println("通过 实现Callable接口 方式实现 ")
            return "success";
        }
}

调用示例

  public class ThreadTest{
      public static void main(String [] args){
        //ThreadA
        Thread t1 = new Thread(new ThreadA());
        t1.start();
        //ThreadB
        Thread t2 = new Thread(new ThreadB());
        t2.start();
        //ThreadC
        ThreadC test = new ThreadC();
        FutureTask<String> futureTask = new FutureTask<String>(test);
        Thread t3 = new Thread(futureTask);
        t3.start();
        try {
            //获取返回call方法结果
            String result = futureTask.get(1, TimeUnit.SECONDS);
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
  }

三种创建方式比较

继承创建线程的缺陷是受java单继承的影响,如果一个线程继承了Thread类,就无法继承其他类,不利于业务逻辑处理,并且Thread类其实也是实现了Runnable接口的

Callable和Runnale的区别

1.Runnable执行方法是run(),Callable是call()
2.实现Runnable接口的任务线程无返回值;Callable接口支持返回执行结果,此时需要调用FutureTask.get(long time, TimeUnit unit)方法实现,此方法会阻塞主线程直到获取子线程执行完的结果;当不调用此方法时,主线程不会阻塞
3.call方法可以抛出异常,run方法若有异常只能在内部消化。

原创,转载请著名出处!

相关文章

  • iOS基础知识 (三)

    多线程 多线程创建方式 iOS创建多线程方式主要有NSThread、NSOperation、GCD,这三种方式创建...

  • 多线程编程

    创建线程 创建线程的三种方式 创建方式Threadclass继承Thread类(重点)Runnable接口实现Ru...

  • 1 Java线程知识

    Java三种创建线程的方式:

  • 多线程 学习1

    一、创建线程方式 java创建线程的方式,主要有三种:类Thread、接口Runnable、接口Callable。...

  • Java多线程基础一

    多线程创建的三种方式 lambda

  • 线程池的使用入门

    在上一篇文章中,我们总结了三种创建线程的方式:《Java多线程基础——三种创建线程的方式》,然而在真实的开发中很少...

  • Java创建线程的三种方式及对比

    一.Java创建线程的三种方式 Java中创建线程主要有三种方式:1.继承Thread类2.实现Runnable接...

  • iOS 线程

    pthread NSThread 第一种创建方式 第二种创建方式 第三种创建线程的方式 NSThread线程的状态...

  • 线程

    java 中创建线程有哪几种方式? Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定...

  • 创建线程的三种方式

    java创建线程的三种方式: 继承Thread类创建线程类通过Runable接口创建线程类通过Callable和F...

网友评论

    本文标题:线程的创建-三种方式

    本文链接:https://www.haomeiwen.com/subject/bujaeqtx.html