zoukankan      html  css  js  c++  java
  • java中创建线程的3种方法

    1.继承Thread类
    优点:可以直接使用Thread类中的方法,代码比较简单。
    缺点:继承Thread类之后不能继承其他类。

    2.实现Runable接口
    优点:实现接口,比影响继承其他类或实现接口。
    缺点:

    3.实现Callable接口
    优点:可以获取返回值,可以抛出异常。
    缺点:实现方法相对复杂

    三种方法的实现例

    public static void main(String[] args) throws InterruptedException, ExecutionException {
    //继承Thread类

    /*1.创建Thread类对象。
    * 2.重写run方法,添加在线程中执行的方法。
    * 3.start方法启动线程。
    */

    new Thread() { 

       public void run() 
         {
            for(int i=0;i<100;i++) { System.out.println(" 继承Thread测试"+i); }

          } 

        }.start(); 

    //实现Runnable接口

    /*1.实现Runable接口。
    * 2.重写run方法,添加在线程中执行的方法。
    * 3.创建thread类对象,Runable接口的实现作为参数传入,执行带参数的构造函数。
    * 4.start方法启动线程。
    */

    Runnable ra= new Runnable() {
    @Override
    public void run() { 
       for(int i=0;i<1000;i++)
      {System.out.println("Runnable线程测试 "+i);}
       }
    };
    Thread thread = new Thread(ra); 
    thread.start(); 


    //Callable

    /*1.创建线程池。
    * 2.现实Callable接口。
    * 3.重写Call方法,添加在线程中执行的方法。
    * 4.把Callable的实现放到线程池中。并获得线程池返回的Future对象。
    */
    ExecutorService es = Executors.newFixedThreadPool(3);
    Callable<Integer> ca=new Callable<Integer>()
      {
       @Override
       public Integer call() throws Exception {
       return 100;
       }
    };
    Future<Integer> ft =es.submit(ca); 
    System.out.println(ft.get());
    es.shutdown();

    }
    }

  • 相关阅读:
    [poj解题]1017
    [算法] aov图拓扑算法
    【supervisord】部署单进程服务的利器
    【python】一个备份把文件备份到邮箱的python实现
    【GO】关于GO的浅显总结
    iOS开发快捷键
    iOS开发笔记
    VS2012智能提示无效解决方案
    国内几个WindowPhone广告平台
    纪念自己的第四个App:秘密Secret
  • 原文地址:https://www.cnblogs.com/HappyBeibei/p/11072801.html
Copyright © 2011-2022 走看看