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();

    }
    }

  • 相关阅读:
    uwsgi
    protobuf c++ API
    memcached 第二篇----安装使用
    ice grid配置使用第二篇------实际使用
    ICE BOX 配置,使用----第一篇
    可视化资料收集
    Protocol Buffers
    ice grid 完整部署过程
    django组件之ajax
    关于Django在写小项目的一些小注意事项
  • 原文地址:https://www.cnblogs.com/HappyBeibei/p/11072801.html
Copyright © 2011-2022 走看看