阿里巴巴Java工程师:怎么才算掌握了JDK中的线程池?

怎么才算掌握了JDK中的线程池

JDK并发包下面的线程池是面试中经常被考查的点

今天,我来谈谈自己觉得ThreadPoolExecutor哪些点是应该掌握的,这些点应该掌握的点正是面试中经常被问的东西。现在抛出几个问题,如果你都能答上来,可以不用往下面看啦。

  1. ThreadPoolExecutor中常用参数有哪些,作用是什么?任务提交后,ThreadPoolExecutor会按照什么策略去创建线程用于执行提交任务?
  2. ThreadPoolExecutor有哪些状态,状态之间流转是什么样子的?
  3. ThreadPoolExecutor中的线程哪个时间点被创建?是任务提交后吗?可以在任务提交前创建吗?
  4. ThreadPoolExecutor中创建的线程哪个时间被启动?
  5. ThreadPoolExecutor竟然是线程池那么他是如何做到重复利用线程的?
  6. ThreadPoolExecutor中创建的同一个线程同一时刻能执行多个任务吗?如果不能是通过什么机制保证ThreadPoolExecutor中的同一个线程只能执行完一个任务,才会机会去执行另一个任务?
  7. ThreadPoolExecutor中关闲线程池的方法shutdown与shutdownNow的区别是什么?
  8. 通过submit方法向ThreadPoolExecutor提交任务后,当所有的任务都执行完后不调用shutdown或shutdownNow方法会有问题吗?
  9. ThreadPoolExecutor有没有提供扩展点,方便在任务执行前或执行后做一些事情?

如果回答的上就pass吧,哈哈

ThreadPoolExecutor参数有哪些与创建线程策略?

ThreadPoolExecutor参数

  • corePoolSize 线程池中的核心线程数
  • mmaximumPoolSize 线程池中的最大线程数
  • keepAliveTime 当线程池中线程数量超过corePoolSize时,允许等待多长时间从workQueue中拿任务
  • unit keepAliveTime 对应的时间单位,为TimeUnit类。
  • workQueue 阻塞队列,当线程池中线程数超过corePoolSize时,用于存储提交的任务。
  • threadFactory 线程池采用,该线程工厂创建线程池中的线程。
  • handler 为RejectedExecutionHandler,当线程线中线程超过maximumPoolSi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值