如何应对企业Java线程池面试题 - 极悦
首页 课程 师资 教程 报名

如何应对企业Java线程池面试题

  • 2020-06-19 13:18:29
  • 2199次 极悦

Java的线程池我想大家肯定不会陌生,在工作中或者自己平时的学习中多多少少都会用到,那你真的有了解过底层的实现原理吗?还是说只停留在用的阶段呢?而且关于Java线程池也是在面试中的一个高频的面试题,就像HashMap的实现原理一样,基本上面试必问,估计都已经被问烂大街了。

如何应对企业Java线程池面试题

常用的几种线程池

我们先来看下常用的几种线程池的创建方式,以及底层采用的实现原理

单个线程:

Executors.newSingleThreadExecutor();

public static ExecutorService newSingleThreadExecutor() {
 return new FinalizableDelegatedExecutorService
 (new ThreadPoolExecutor(1, 1,
 0L, TimeUnit.MILLISECONDS,
 new LinkedBlockingQueue<Runnable>()));
 }

缓存线程:

Executors.newCachedThreadPool();

public static ExecutorService newCachedThreadPool() {
 return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
 60L, TimeUnit.SECONDS,
 new SynchronousQueue<Runnable>());
 }

固定线程:

Executors.newFixedThreadPool(2);

public static ExecutorService newFixedThreadPool(int nThreads) {
 return new ThreadPoolExecutor(nThreads, nThreads,
 0L, TimeUnit.MILLISECONDS,
 new LinkedBlockingQueue<Runnable>());
 }

定时线程:

Executors.newScheduledThreadPool(3);(父类中)

public ThreadPoolExecutor(int corePoolSize,
 int maximumPoolSize,
 long keepAliveTime,
 TimeUnit unit,
 BlockingQueue<Runnable> workQueue) {
 this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
 Executors.defaultThreadFactory(), defaultHandler);
 }

以上就是极悦java培训机构的小编针对“如何应对企业Java线程池面试题”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交