- 1
- 0
- 约小于1千字
- 约 1页
- 2026-05-12 发布于北京
- 举报
如果你的业务场景有一些需求的话,你完全可以自己直接构造ThreadPoolExecutor的线程池,
传入一些参数符合你自己的业务需求的,fixed和cached、scheduled可以满足大部分场景的
线程池的使用了
fixed,但是你希望队列是有界的,此时你就可以自己定制了
corePoolSize:线程池里的线程是0,少于这个数量,他会自动创建这个数量的线程的,只要
线程池里的线程是少于corePoolSize,他后面就会以take阻塞的方式从队列里获取任务,这
些线程是不会释放了
任务一定会直接入队,此时你是用什么队列?队列,有界队列,同步队列,
LinkedBlockingQueue和SynchronousQueue,如果你看一些开源项目里对线程池的定制的源
码的话
有界队列的话,此时如果队列满了,入队失败,就会尝试以非core方式创建线程,直接执
行任务,最多线程池里的线程过umPoolSize,如果线程池里的线程总数一旦超
过了corePoolSize
超出corePoolSize数量的那些线程,在从队列获取的时候是走的poll+超时时间
(
原创力文档

文档评论(0)