首页 > 其他分享 >线程池相关面试题

线程池相关面试题

时间:2024-08-25 23:24:12浏览次数:15  
标签:面试题 JDK Executors 队列 创建 任务 线程 相关

一、JDK自带的线程池有那些?

1.Executors.newCachedThreadPool()

创建一个可缓存线程的线程池,若线程池长度超出需要,可回收线程,若没有可回收,则新建线程

2.Executors.newFixedThreadPool()

创建定长线程池,可控制线程最大并发数,超出的线程在队列中等待

3.Executors.newScheduledThreadPool()

创建定长线程池,支持定时和周期性任务执行

4.Executors.newSingleThreadExecutor()

创建单线程化的线程池,用唯一的线程工作,保证任务按指定顺序执行

二、线程池中核心线程数、最大线程数、缓冲任务队列的关系?

线程池的工作机制:

  • 先使用核心线程执行任务
  • 当核心线程不足时,新任务入队列等待
  • 当队列满且线程数未达最大值时,增加非核心线程执行任务
  • 当队列满且线程数已达最大值时,触发拒绝策略处理新来的任务

三、为什么阿里巴巴不推荐使用JDK自带的线程池?

  1. 资源耗尽的风险
  2. 拒绝策略不明确
  3. 线程池参数优化
  4. 监控和调试难度
    阿里巴巴推荐使用ThreadPoolExrcutor手动创建线程池,为了增强系统稳定性,降低资源耗损风险,提高开发者对线程池的控制

标签:面试题,JDK,Executors,队列,创建,任务,线程,相关
From: https://blog.csdn.net/qq_53098873/article/details/141436325

相关文章

  • 【MySQL-23】万字总结<InnoDB引擎>——【逻辑存储结果&架构(内存结构,磁盘结构,后台线程)&事
    前言大家好吖,欢迎来到YY滴MySQL系列,热烈欢迎!本章主要内容面向接触过C++的老铁主要内容含:欢迎订阅YY滴C++专栏!更多干货持续更新!以下是传送门!YY的《C++》专栏YY的《C++11》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《单片机》专栏YY......
  • 【面试系列】大数据平台常见面试题解答
    欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:工......
  • Java笔试面试题之多线程常见考点总结
    Java多线程面试题涵盖了Java多线程编程的多个重要方面,主要考察面试者对Java并发编程的理解和应用能力。以下是常见的考点总结:基本概念与区别:进程与线程的区别:进程是资源分配的基本单位,线程是CPU调度的基本单位,线程共享进程资源。Java堆与栈的区别:堆用于存储对象实例,栈用......
  • 电力行业电气领域相关数据集下载地址汇总输电线路变电站电网应用数据集汇总(全网最全)
    在电力行业电气领域,数据集扮演着至关重要的角色。这些数据集涵盖了从发电到用电的各个环节,包括输电线路图像、变电站监测、电力负荷预测等多样化内容。例如,输电线路图像数据集通过无人机或直升机拍摄,包含了杆塔、绝缘子、导线等详细图像,为目标检测、分类和异常检测提供了丰......
  • sql server导入mysql,使用python多线程
    概述在上一篇文章中,链接:https://www.cnblogs.com/xiao987334176/p/18377915使用工具SQLyog进行导入,传输过程是单进程的,一个表一个表的传,一条条数据插入,所以传输速度会比较慢。如果sqlservermdf文件在200m左右,传输需要花费30分钟左右。如果来了一个10GB左右的mdf的文件,需要25......
  • pthread线程
    线程概念线程是轻量级进程,一般是一个进程中的多个任务。进程是系统中最小的资源分配单位进程是操作系统中资源分配的最小单位。每个进程都有自己的地址空间,并且拥有独立的资源(如内存、文件句柄等)进程之间通常是相互独立的,彼此不能直接访问对方的内存空间线程是系统中......
  • Java线程
    一、线程的介绍1.1.程序为完成特定任务,用某种语言编写的一组指令的集合。(代码)1.2.进程进程就是指运行中的程序,启动一个进程,操作系统就会为该进程分配内存空间。进程是程序的一次执行过程,或是正在运行的一个程序,是动态过程:有它自己的产生、存在和消亡的过程1.3.线程线程......
  • RabbitMQ 相关概念及简述
    总结自:BV15k4y1k7EpRabbitMQ是一款常用的消息队列(MQ)。什么是消息队列MQ全称为MessageQueue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信。消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,......
  • ZBlog首页与列表页相关模板
    页面公共模板文件模板文件说明header.php公共头部文件footer.php公共尾部文件首页与列表页相关模板模板文件说明index.php首页及列表页主模板文件post-multi.php摘要文章模板post-istop.php置顶文章模板pagebar.php页码模板日志/独......
  • [JS]精选面试题-4
    1.介绍js的基本数据类型基本数据类型的数据直接存储在栈(stack)内存中String:字符串在JavaScript中是不可变的Number:JavaScript中的数字类型是不分整型和浮点型的,所有的数字都是以64位浮点数形式存储的。Number支持一些特殊的值,如NaN(非数字)、Infinity(无穷大)和-Infinity......