JAVA后端面试题(持续更新~~~~)

JAVA后端面试题(持续更新~~~~)

(一)线程池的原理,为什么创建线程池?创建线程池的方式

线程池实现原理:

1.判断线程池中的核心线程是否都在执行任务,如果不是则创建一个新的工作线程来执行任务
2.如果核心线程都在执行任务,则判断任务队列是否已满,如果没满,就将任务存储进任务队列中
3.如果任务队列已满,则判断线程池中的线程是否达到最大线程数量,如果达到则进行相应的拒绝处理策略,否则创建一个新的线程执行任务

为什么创建线程池?
减少线程创建和销毁线程的次数,每个工作线程都可以重复使用
根据系统的承受能力,调整线程池中工作线程的数量,防止因消耗过多内存导致服务器崩溃

 创建线程池方式:

public ThreadPoolExecutor(int corePoolSize, //核心线程数量
int maximumPoolSize, //最大线程数量
long keepAliveTime, //空余线程最大存活时间
TimeUnit unit, //存活时间单位
BlockingQueue<Runnable> workQueue, //任务队列
RejectedExecutionHandler handler) //处理策略

猜你喜欢

转载自www.cnblogs.com/xtuxiongda/p/10063083.html