zoukankan      html  css  js  c++  java
  • Callable和Future

      Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值。

    使用实现Callable接口,实现多线程加法求和

    /**
     * @ClassName: CallableAndFuture.java
     * @Description:
     * @author yangcb
     * @date 2016年11月17日 下午2:11:01
     */
    public class CallableAndFuture {
    
    	
    	public static void main(String[] args) throws InterruptedException, ExecutionException {
    		int num=0;
    		for(int i=1;i<=10;i++){
    			MyCallable myCallable=new MyCallable(i);
    			FutureTask<Integer> futureTask=new FutureTask<Integer>(myCallable);
    			new Thread(futureTask).start();			
    			num=num+futureTask.get();
    		}
    		System.out.println(num);
    		
    	}
    
    }
    /***
     * 实现callable接口
     * @author yangcb
     *
     */
    class  MyCallable implements Callable{
    
    	int i;
    	
    	 public MyCallable(int i) {
    		 this.i=i;
    		 
    	}
    	
    	@Override
    	public Object call() throws Exception {
    		
    		int j=0;
    		/**
    		 * 从1加到100算法,单个线程求和
    		 */
    		for(int num=(i-1)*10+1;num<=i*10;num++){
    			j=j+num;
    		}
    		return j;
    	}
    }
    
  • 相关阅读:
    ionic框架
    第3课
    第7课
    第6课
    第5课
    第4课
    第3课
    第2课
    第2课
    第1课
  • 原文地址:https://www.cnblogs.com/yangcb/p/6073840.html
Copyright © 2011-2022 走看看