zoukankan      html  css  js  c++  java
  • Java创建线程的三种方法比较

    一般有三种方法,Thread,Runnable,Callable.
    Runnable和Callable的区别
        (1)Callable规定的方法是call(),Runnable规定的方法是run().
      (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得
      (3)call方法可以抛出异常,run方法不可以
      (4)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。
    
    **通过实现Runnable接口来创建Thread线程:
    步骤1:创建实现Runnable接口的类:
    class SomeRunnable implements Runnable
      {
      public void run()
      {
      //do something here
      }
      }
    步骤2:创建一个类对象:
      Runnable oneRunnable = new SomeRunnable();
    步骤3:由Runnable创建一个Thread对象:
      Thread oneThread = new Thread(oneRunnable);
    步骤4:启动线程:
      oneThread.start();
    注释:线程的执行流程很简单,当执行代码oneThread.start();时,就会执行oneRunnable对象中的void run();方法,该方法执行完成后,线程就消亡了。
    
    **通过实现Callable接口来创建Thread线程:
    与方法1类似,通过实现Callable接口来创建Thread线程:其中,Callable接口(也只有一个方法)定义如下:
      Java代码:
      public interface Callable
      {
      V call() throws Exception;
      }
      步骤1:创建实现Callable接口的类SomeCallable(略);
      步骤2:创建一个类对象:
      Callable oneCallable = new SomeCallable();
      步骤3:由Callable创建一个FutureTask对象:
      FutureTask oneTask = new FutureTask(oneCallable);
      注释:FutureTask是一个包装器,它通过接受Callable来创建,它同时实现了
      Future和Runnable接口。
      步骤4:由FutureTask创建一个Thread对象:
      Thread oneThread = new Thread(oneTask);
      步骤5:启动线程:
      oneThread.start();
      至此,一个线程就创建完成了。
    
    **通过继承Thread类来创建一个线程:
    步骤1:定义一个继承Thread类的子类:
      Java代码:
      class SomeThead extends Thraad
      {
      public void run()
      {
      //do something here
      }
      }
      步骤2:构造子类的一个对象:
      SomeThread oneThread = new SomeThread();
      步骤3:启动线程:
      oneThread.start();
      至此,一个线程就创建完成了。
    

      

  • 相关阅读:
    [ Algorithm ] N次方算法 N Square 动态规划解决
    [ Algorithm ] LCS 算法 动态规划解决
    sql server全文索引使用中的小坑
    关于join时显示no join predicate的那点事
    使用scvmm 2012的动态优化管理群集资源
    附加数据库后无法创建发布,error 2812 解决
    浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法
    windows 2012 r2下安装sharepoint 2013错误解决
    sql server 2012 数据引擎任务调度算法解析(下)
    sql server 2012 数据引擎任务调度算法解析(上)
  • 原文地址:https://www.cnblogs.com/ipetergo/p/6490062.html
Copyright © 2011-2022 走看看