线程池

线程池概述

经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对线程影响很大。

使用线程池的好处

提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。

  • 高响应速度(减少了创建新线程的时间)
  • 降低资源消耗(重复利用线程中的线程,不需要每次都创建)
  • 便于线程管理:corePoolSize核心池大小、maxinumPoolSize最大线程数、KeepAliveTime:线程没有任务时最多存活多久。

常用类&方法

Executors:工具类、线程池的工厂类。

用于创建并返回不同类型的线程池。

 
 ExecutorService真正的线程池接口

void execute(Runable command)

执行任务,没有返回值。一般用来执行Runnable

 

<T> Future<T> submit(Callable<T> task)

执行任务,有返回值,一般用来执行Callable

 

void shutdown()

关闭连接池

Future future = executor.submit(task);

提交任务其实就是将任务,放入线程池的待执行队列里面。

放入队列并不需要多长时间,所以可以立即返回。

future.isDone()

查看任务的完成情况

 

future.get()

如果任务完成了,完成结果是什么 

 

future.cancel()

可以选择性地取消任务 

 

  
    

posted @ 2022-06-18 16:24  禁止摆烂  阅读(20)  评论(0)    收藏  举报