zoukankan      html  css  js  c++  java
  • java并发--Callable的使用

    在java并发中提供了Callable<T>的一个接口,可以在线程中返回一个参数,这是接口Runable所做不到的。。

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.concurrent.Callable;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Future;
    
    public class CallableTest {
    	/**
    	 * 可以返回一个参数
    	 * @author Administrator
    	 *
    	 */
    	class TaskCallable implements Callable<String> {
    		int id;
    
    		TaskCallable(int id) {
    			this.id = id;
    		}
    		/**
    		 * 线程中可以返回一个参数
    		 */
    		@Override
    		public String call() throws Exception {
    			return "xxxx" + id;
    		}
    
    	}
    
    	public static void main(String[] args) {
    		CallableTest test = new CallableTest();
    		ArrayList<Future<String>> arrFuture = new ArrayList<Future<String>>();//利用future储存
    		ExecutorService executorServer = Executors.newCachedThreadPool();
    		try {
    			for (int i = 0; i < 10; i++) {
    				Future<String> future = executorServer
    						.submit(test.new TaskCallable(i));//submit产生futrue对象
    				arrFuture.add(future);
    
    			}
    			for (Future<String> future : arrFuture) {
    				System.out.println(future.get());
    			}
    		} catch (InterruptedException e) {
    			System.out.print(e);
    		} catch (ExecutionException e) {
    			System.out.print(e);
    		} finally {
    			executorServer.shutdown();
    		}
    
    	}
    }
    

     call函数返回一个参数,跟Runable所不同的是Runable是调用excute(Thread),Callable是调用

    submit(Thread).
  • 相关阅读:
    RPA 产品落地的最后一公里
    H5 native.js 控制wifi
    js 添加css或者链接文件
    js 获取网址中的参数
    js自建readAsBinaryString方法
    js 获取选中文字
    js 身份证校验代码
    js复制对象
    js 字符串编码与解码
    js数组排序
  • 原文地址:https://www.cnblogs.com/a-bird/p/3609042.html
Copyright © 2011-2022 走看看