四种内置线程池(缓存线程池,定时运行线程池,边界线程池,单例线程池) 线程池的工作原理
时间: 2024-08-09 19:01:47 浏览: 98
JAVA线程池原理以及几种线程池类型介绍.doc
四种常见的内置线程池在Java中通常指的是:
1. **固定大小线程池** (Executors.newFixedThreadPool): 这是一个通用的线程池,创建时预设了线程的数量,当任务提交时,如果线程已满,则会将新任务放入阻塞队列等待处理。
2. **缓存线程池** (Executors.newCachedThreadPool): 也称为边界线程池,线程数根据需要动态增长,当任务完成后线程会被回收,直到有新的任务到来才会再次创建。
3. **定时线程池** (ScheduledExecutorService): 提供定时及周期性执行任务的功能,支持延迟启动、定期执行以及定时间隔的重复执行。
4. **单例线程池** (Executors.singleThreadExecutor): 只有一个工作线程的线程池,保证所有任务按照顺序依次执行,适合串行化的任务。
线程池的工作原理主要包括以下几个步骤:
- **任务提交**: 当用户通过线程池API提交一个新的Runnable或Callable任务时,它会被添加到线程池的任务队列中。
- **线程获取与执行**: 如果线程池中有空闲线程,线程会从队列中取出任务并开始执行;如果没有,线程池会创建新的线程来执行任务。
- **线程管理**: 根据线程池的具体设计,可能会有线程限制策略(如固定大小),超时控制,线程生命周期管理等。
- **线程结束与回收**: 执行完任务的线程可能会立即返回给线程池或者按特定规则进行销毁和回收,如边界线程池会自动回收无用线程。
阅读全文