当前位置:首页 > 行业动态 > 正文

java线程池有几种

Java线程池主要有四种类型,它们分别是:

java线程池有几种  第1张

1、FixedThreadPool(固定线程数线程池)

2、CachedThreadPool(可缓存线程池)

3、ScheduledThreadPool(定时线程池)

4、SingleThreadExecutor(单线程执行器)

下面是对这四种线程池的详细解释:

1. FixedThreadPool(固定线程数线程池)

FixedThreadPool是一种固定线程数的线程池,它会根据指定的线程数量创建线程,并在任务到来时分配线程执行,如果线程池中的线程都处于繁忙状态,任务会被放入队列等待,直到有空闲线程可用。

int nThreads = 5; // 指定线程数量
ExecutorService executor = Executors.newFixedThreadPool(nThreads);

2. CachedThreadPool(可缓存线程池)

CachedThreadPool是一种可缓存的线程池,它的线程数量会根据任务的数量动态调整,当任务到来时,如果线程池中有空闲线程,则直接使用;如果没有,则创建新线程,当线程空闲时间超过一定阈值(默认为60秒),线程会被回收。

ExecutorService executor = Executors.newCachedThreadPool();

3. ScheduledThreadPool(定时线程池)

ScheduledThreadPool是一种支持定时和周期性任务的线程池,它可以在指定的延迟后执行任务,或者以固定的周期执行任务。

int nThreads = 5; // 指定线程数量
ScheduledExecutorService executor = Executors.newScheduledThreadPool(nThreads);

4. SingleThreadExecutor(单线程执行器)

SingleThreadExecutor是一种单线程的线程池,它只有一个线程来执行任务,适用于需要按顺序执行任务的场景。

ExecutorService executor = Executors.newSingleThreadExecutor();

Java线程池主要有四种类型,分别是FixedThreadPool、CachedThreadPool、ScheduledThreadPool和SingleThreadExecutor,它们各自有不同的特点和适用场景。

0