Fork me on GitHub

线程池与Callable接口

定义:

一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。

使用方法

public void lockDemo() throws InterruptedException, ExecutionException {
        ExecutorService executor= Executors.newFixedThreadPool(20);
        Callable callable=new Callable() {
            @Override
            public Object call() throws Exception {
                return "实现Callable接口的线程池demo";
            }
        };
        //开启线程
        Future<String> submit = executor.submit(callable);
        //获取线程返回值
        String result = submit.get();
        //关闭线程池
        executor.shutdown();
    }

优点:

1.降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2. 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
3. 提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)

posted @ 2021-04-12 20:12  晨度  阅读(154)  评论(0编辑  收藏  举报