1、背景
-
经常创建和销毁,使用量特别大的资源。在并发的情况下 对于性能的影响很大
-
做法:提前创造好多个线程,放入线程池中,使用的时候,直接获取,使用完之后再放回池子中。可以避免频繁的创建和销毁,实现重复利用。
-
好处
-
提高了响应速率,- 减少了线程创造的时间
-
降低了资源消耗 ,- 重复利用线程池中的线程,不用每次都创建
-
便于线程的管理,
-
2、JAVA相关
- ExecutorService 和 Executor
- Executor 工具类,线程池的工厂方法,用于创建返回不同类型的线程池
- ExecutorService: 真正的线程池接口
- void execute(Runnable command) :执行任务 没有返回值 一般用来执行Runnable
- Future submit(Callable task): 执行任务,有返回值,一般用来执行Callable
- void shutdown() 关闭连接池
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolTest implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args) {
//第一步 创建池子
ExecutorService service = Executors.newFixedThreadPool(10);
//第二步 执行任务
service.execute(new ThreadPoolTest());
service.execute(new ThreadPoolTest());
service.execute(new ThreadPoolTest());
service.execute(new ThreadPoolTest());
// 第三步 关闭
service.shutdown();
}
}