java多线程浅探(一)

JAVA学习网 2017-07-14 07:58:01

多线程的创建方式

(1)继承Thread类:这种方式一般不常用,考虑到新建的线程类有继承其他父类的需要;

class MyThread extends Thread{
  
  @Override
public void run(){ //do something here } }

(2)实现Runnable接口:最常用的方式

class MyThread implements Runnable{
  @Override
    public void run(){
      //do something here          
   }
}  

(3)实现Callable接口:这种方式用在需要返回结果值的场景下,实现Collable接口需要实现其call()方法

public class MyThread implements Callable<String>{
  @Override
  public String call() throws Exception{
    //do something here
    return XXX;
  }
  
}

public class FutureMain{
  public static void main(String[] args){
    //构造FutureTask
    FutureTask<String> future = new FutureTask<String>(new MyThread());
    Thread t1 = new Thread(future);
    t1.start();
    //取得call()方法的返回值
    System.out.println("返回值"+future.get());
  }
}

当然,除了基本的功能外,JDK还为Future提供了一些简单的控制功能:

boolean cancle(boolean mayInterruptIfRunning);                       //取消任务
boolean isCancelled();                                               //是否已经取消
boolean isDone();                                                    //是否已完成
                          

 

阅读(765) 评论(0)