Executors
类提供了以下几种常见的线程池实现:
newFixedThreadPool
:创建一个固定大小的线程池。线程数量固定,当所有线程都处于忙碌状态时,新的任务会在队列中等待,直到有线程可用。- 示例:
Executors.newFixedThreadPool(5);
创建一个固定有 5 个线程的线程池。
- 示例:
newCachedThreadPool
:创建一个可缓存的线程池。如果线程池中有可用的空闲线程则复用,如果没有则新建线程。线程空闲 60 秒后会被回收。- 适合处理大量短时间的异步任务。
newSingleThreadExecutor
:创建一个单线程的线程池。所有任务按照顺序在一个线程中执行。- 可以保证任务的执行顺序。
newScheduledThreadPool
:创建一个定长的线程池,支持定时及周期性任务执行。
例如,如果有一个任务队列,需要固定 10 个线程来处理,就可以使用Executors.newFixedThreadPool(10)
来创建线程池。
在实际应用中,需要根据具体的业务需求和场景来选择合适的线程池类型。