MST

星途 面试题库

面试题:HBase 线程池资源管理优化之基础配置

在 HBase 中,简述线程池资源管理优化时,一般会涉及到哪些基础的线程池配置参数及其作用?
33.5万 热度难度
数据库Hbase

知识考点

AI 面试

面试题答案

一键面试
  • corePoolSize:核心线程数,线程池会一直维持该数量的线程在运行状态,即使这些线程处于空闲状态也不会被销毁。当任务提交到线程池时,如果当前运行的线程数小于 corePoolSize,会创建新的线程来执行任务。
  • maximumPoolSize:最大线程数,线程池允许创建的最大线程数量。当任务队列已满且当前运行的线程数小于 maximumPoolSize 时,线程池会创建新的线程来处理任务。
  • keepAliveTime:线程存活时间,当线程数大于 corePoolSize 时,多余的空闲线程在存活时间超过 keepAliveTime 后会被销毁。
  • unit:keepAliveTime 的时间单位,例如 TimeUnit.SECONDS(秒)、TimeUnit.MINUTES(分钟)等。
  • workQueue:任务队列,用于存放等待执行的任务。常用的任务队列有 ArrayBlockingQueue(有界队列)、LinkedBlockingQueue(无界队列)、SynchronousQueue(同步队列)等。不同的任务队列特性会影响线程池的性能和行为。
  • threadFactory:线程工厂,用于创建新线程。通过自定义线程工厂,可以设置线程的名称、优先级、是否为守护线程等属性。
  • handler:拒绝策略,当任务队列已满且线程数达到 maximumPoolSize 时,新提交的任务会被拒绝,由拒绝策略决定如何处理这些被拒绝的任务。常见的拒绝策略有 AbortPolicy(直接抛出异常)、CallerRunsPolicy(由提交任务的线程来执行任务)、DiscardPolicy(直接丢弃任务)、DiscardOldestPolicy(丢弃队列中最老的任务,然后尝试提交新任务) 。