java线程池

来源:互联网 发布:坐标系平移变换矩阵 编辑:程序博客网 时间:2024/06/05 18:52
ExecutorService executor = Executors.newFixedThreadPool(10);        executor.shutdown();        executor.shutdownNow();        Thread.currentThread().getName(); //获取线程名称        //没有返回值        executor.submit(new Runnable() {            @Override            public void run() {            }        });        executor.execute(new Runnable() {            @Override            public void run() {            }        });        Future<T> submit = executor.submit(new Callable<T>() {            @Override            public T call() throws Exception {                return null;            }        }); // 有返回值        submit.get(); //获取返回值    }

executor.shutdown()
executor.shutdownnow()

package run;import java.util.ArrayList;import java.util.List;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;import service.CrawlerPostgraduate;public class Start {    public static void main(String[] args) {        // 初始化多个需要爬的类        List<Callable<String>> tasks = new ArrayList<Callable<String>>();        CrawlerPostgraduate cp = new CrawlerPostgraduate();        tasks.add(cp);        // 线程池        ExecutorService executor = Executors.newFixedThreadPool(10);        List<Future<String>> invokeAll = null;        try {            invokeAll = executor.invokeAll(tasks);        } catch (InterruptedException e) {            e.printStackTrace();        }        for (Future<String> future : invokeAll) {            try {                System.out.println(future.get());            } catch (InterruptedException e) {                e.printStackTrace();            } catch (ExecutionException e) {                e.printStackTrace();            }        }        executor.shutdown();    }}
原创粉丝点击