线程启动的三种方式

启动线程的方式有如下三种

/**
 *类说明:新启线程的方式
 */
public class NewThread {
   /*方式一、扩展自Thread类*/
   private static class UseThread extends Thread{
      @Override
      public void run() {
         super.run();
         // do my work;
         System.out.println("I am extends Thread");
      }
   }

   
   /*方式二、实现Runnable接口*/
   private static class UseRunnable implements Runnable{

      @Override
      public void run() {
         // do my work;
         System.out.println("I am implements Runnable");
      }
   }

   /**
    * 方式三、实现Callable接口
    *
    */
   private static class CallThread implements Callable<String>{
      @Override
      public String call() throws Exception {
         return "I am callable Thread";
      }
   }
/*
*测试线程启动
*/
   public static void main(String[] args) 
         throws InterruptedException, ExecutionException {
      //第一种方式启动
      UseThread useThread = new UseThread();
      useThread.start();
      //useThread.start();//重复启动报错
      //第二种方式启动
      UseRunnable useRunnable = new UseRunnable();
      new Thread(useRunnable).start();
      //第三种方式启动 实现Callable接口需要用FutureTask进行包装,因为FutureTask实现了Runable接口和Future接口
      CallThread callThread = new CallThread();
      FutureTask<String> futureTask = new FutureTask<>(callThread);
      new Thread(futureTask).start();
      System.out.println(futureTask.get());//该方法是阻塞方法
   }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值