面试题

jdk自带的线程池

newFixedThreadPool 固定大小线程池

同时可运行的线程数量是固定的。当提交新任务时,如果线程池中已有线程正在执行任务且数量达到上限,则新任务将被放入队列中等待,直到有线程空闲出来。适用于处理长期存在且可以并行执行的任务,有助于防止资源过度消耗。

newCachedThreadPool 缓存线程池

线程池的大小不固定,可根据需要自动调整。当提交新任务时,若线程池中没有空闲线程,则会创建新的线程来执行任务。同时,对于空闲线程,线程池会根据其空闲时间进行回收以避免资源浪费。适用于处理大量短生命周期的异步任务,任务的并发度可能会动态变化。

newSingleThreadExecutor 单线程线程池

线程池只有一个工作线程,所有任务按顺序(通常为FIFO)执行

newScheduledTheadPool 定时/周期性任务线程池

除了具备基本的线程池功能外,还支持定时执行任务一次(延时执行)或定期重复执行任务(周期执行)。线程池大小可以自定义,但通常保持相对固定。适用于需要调度定时任务或周期性任务的场景。

阿里巴巴不让使用JDK自带的线程池

资源耗尽

newCachedThreadPool 由于没有预设最大线程数限制,当任务量过大时,可能导致线程数无限制增长,从而耗尽系统资源宕机

队列容量

FixedThreadPoolSingleThreadPool所使用的阻塞队列长度为21亿。这意味着当任务提交速率远大于处理速率时,大量任务会堆积在队列中,可能导致内存溢出

线程池的核心参数有那些

线程池大小、最大线程数、任务队列最大数

项目中有没有用过调度器

  1. Redis 定期检查key 的数量
  2. 消息队列 Rabbit MQ 定期检查队列信息
  3. 蚂蚁组队 定期检查超出时间的出行单

Spring 自带的tack与xxl-Job的区别

分布式,将项目发布到多态服务器上时,Spring Task不能保证在同一时刻只有一台服务器的任务在执行。而xxl-job可以通过调度器实现同一时刻只有一台服务器的任务在运行

MongoDB 与MySQL的区别?优势?

MySQL关系模型数据库,使用表格(tables)来组织数据 MongoDB 非关系型数据库文档采用类似JSON的BSON格式

在这里插入图片描述

Mongodb在哪些场景应用

灵活多变的数据(广告,推荐),日志,小程序、公众号的数据

ES是什么?分词器?

Elasticsearch 是一个基于 Apache Lucene 构建的开源分布式搜索引擎和分析引擎。Elasticsearch 可以处理大量数据,并且具备横向扩展能力,能够通过增加更多的硬件资源来应对数据和查询量的增长。

ik_smart 尽量进行较少的、更有意义的拆分,减少无意义的子词组合,提高搜索准确率,降低误报率

ik_max_word 最大化地拆分文本,即尽可能多地生成可能的词语组合,包括单字、双字直至整个短语

什么是MDC,原理

在日志记录领域,尤其是使用如log4j、logback等日志框架时,MDC是一种辅助多线程环境下日志追踪和关联的技术。

其原理是在每个线程的上下文中维护一个键值对映射表,用于存储与该线程执行上下文相关的特定信息(如用户ID、事务ID、请求ID等)。当线程在执行过程中生成日志时,MDC中的信息可以自动附加到日志条目中,无需在代码中手动传递这些上下文信息。

相关推荐

  1. <span style='color:red;'>面试</span><span style='color:red;'>题</span>

    面试

    2024-04-23 01:22:04      13 阅读
  2. 面试

    2024-04-23 01:22:04       5 阅读
  3. 面试分享——Elasticsearch面试

    2024-04-23 01:22:04       12 阅读
  4. 面试】Node.js高频面试

    2024-04-23 01:22:04       8 阅读
  5. 测试面试常见

    2024-04-23 01:22:04       33 阅读
  6. dockerfile的面试

    2024-04-23 01:22:04       34 阅读
  7. SpringCloud面试——Nacos

    2024-04-23 01:22:04       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 01:22:04       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 01:22:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 01:22:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 01:22:04       18 阅读

热门阅读

  1. /bin/sh: 1: arm-linux-g++: not found

    2024-04-23 01:22:04       13 阅读
  2. 【Vue3源码学习】— CH3.2 VNode解析(上)

    2024-04-23 01:22:04       15 阅读
  3. leetcode 23

    2024-04-23 01:22:04       15 阅读
  4. lazarus-ide简介

    2024-04-23 01:22:04       14 阅读
  5. 安卓功耗分析

    2024-04-23 01:22:04       10 阅读
  6. Android开发——ListView

    2024-04-23 01:22:04       11 阅读
  7. mybatis和mybatis-plus的区别

    2024-04-23 01:22:04       12 阅读
  8. nginx根据二级目录转发服务以及带/和不带/的区别

    2024-04-23 01:22:04       17 阅读
  9. Rust 模式匹配中的& 和 ref

    2024-04-23 01:22:04       13 阅读
  10. RedisHttpSession反序列化UID问题跟踪

    2024-04-23 01:22:04       12 阅读
  11. 【Git】git revert 命令(撤销 commit 改动)

    2024-04-23 01:22:04       19 阅读
  12. 深度学习概念

    2024-04-23 01:22:04       11 阅读