Java中的线程池有以下几种:
1.FixedThreadPool:固定大小的线程池,创建时需要指定线程池的大小,当线程池中的线程都在执行任务时,新的任务需要等待。
2.CachedThreadPool:可缓存的线程池,可以无限扩大线程池的大小,当线程池中的线程空闲一定时间后,会被回收,当有新的任务需要执行时,又会重新创建一个新的线程。
3.SingleThreadPool:只有一个线程的线程池,所有任务按照指定顺序在该线程中执行,如果该线程异常结束,会重新创建一个新的线程继续执行任务,保证任务的顺序性。
4.ScheduledThreadPool:定时执行任务的线程池,支持延迟执行和定时执行两种任务,可以用于定时任务、定时检查等场景。
5.WorkStealingPool:工作窃取线程池,该线程池默认创建的线程数是 CPU 核心数,线程使用双端队列,当一个线程执行完自己的任务后,会从其他线程的队列中窃取任务来执行,保证任务的平衡性和执行效率。