多线程编程(一)FutureTask 测试类

来源:互联网 发布:k线图基础知识 知乎 编辑:程序博客网 时间:2024/06/07 03:07
//任务 多线程处理
package com.zto.test;import java.util.ArrayList;import java.util.List;import java.util.concurrent.*;/** * Created by Hehy on 2016/10/9. */public class TestFutureTask {    public static void main(String[] args) {        Test00 tets =new  Test00();        tets.test01();        System.out.print("end");    }}class Test00{    public int test01(){        List<String> test = new ArrayList<String>();        for(int i= 0;i<1000;i++)            test.add("test"+i);        ExecutorService es = Executors.newFixedThreadPool(10);        List<FutureTask<String>> futureTaskList = new ArrayList<FutureTask<String>>();        for (final String testItem : test) {            FutureTask<String> futureTask = new FutureTask<String>(new Callable<String>() {                public String call() throws Exception {                    System.out.println("#Task"+testItem);                    return "Task"+testItem;                }            });            es.execute(futureTask);            futureTaskList.add(futureTask);            System.out.println("@Task"+testItem);        }        for (FutureTask<String> item :futureTaskList){            try {         //mark get 阻塞 直至结果反馈                System.out.println("!"+item.get());            } catch (InterruptedException e) {                e.printStackTrace();            } catch (ExecutionException e) {                e.printStackTrace();            }        }
        es.shutdown();
return 1; }}
0 0
原创粉丝点击