Spring Boot 包扫描

Spring Boot 的启动类不在最外层时如何加载相关的Bean?

  • 设置扫描包
@SpringBootApplication(scanBasePackages = {"com.example"})

ThreadPoolExecutor的重要参数

corePoolSize:核心线程数
核心线程会一直存活,及时没有任务需要执行
当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理
设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭
queueCapacity:任务队列容量(阻塞队列)
当核心线程数达到最大时,新任务会放在队列中排队等待执行
maxPoolSize:最大线程数
当线程数>=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务
当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常
keepAliveTime:线程空闲时间
当线程空闲时间达到keepAliveTime时,线程会退出,直到线程数量=corePoolSize
如果allowCoreThreadTimeout=true,则会直到线程数量=0
allowCoreThreadTimeout:允许核心线程超时
rejectedExecutionHandler:任务拒绝处理器
两种情况会拒绝处理任务:
当线程数已经达到maxPoolSize,切队列已满,会拒绝新任务
当线程池被调用shutdown()后,会等待线程池里的任务执行完毕,再shutdown。如果在调用shutdown()和线程池真正shutdown之间提交任务,会拒绝新任务
线程池会调用rejectedExecutionHandler来处理这个任务。如果没有设置默认是AbortPolicy,会抛出异常
ThreadPoolExecutor类有几个内部实现类来处理这类情况:
AbortPolicy 丢弃任务,抛运行时异常
CallerRunsPolicy 执行任务
DiscardPolicy 忽视,什么都不会发生
DiscardOldestPolicy 从队列中踢出最先进入队列(最后一个执行)的任务
实现RejectedExecutionHandler接口,可自定义处理器

线程数量怎么确定?

.分析下线程池处理的程序是CPU密集型,还是IO密集型
CPU密集型:核心线程数 = CPU核数 + 1
IO密集型:核心线程数 = CPU核数 * 2

注:IO密集型(某大厂实践经验)
核心线程数 = CPU核数 / (1-阻塞系数) 例如阻塞系数 0.8,CPU核数为4
则核心线程数为20

如何保护核心线程不被清理?

参见
线程池当未调用 shutdown 方法时,是通过队列的 take 方法阻塞核心线程(Worker)的 run 方法从而保证核心线程不被销毁的。

  Runnable r = timed ?workQueue.poll(keepAliveTime, TimeUnit.NANOSECONDS) :workQueue.take();

中维世纪Java一面相关推荐

  1. 中维世纪视频汇聚助力茶之都奶茶连锁店部署智慧运营系统

    广西茶之都餐饮管理有限公司是一家起源于广西,面向全国地区招商的茶饮连锁品牌,主打"茶之都"."冰雪森林"两大品牌,截至目前,其全国门店已达1000余家且规模在持 ...

  2. 中维报警邮件服务器,主打智能分析,中维世纪智能先锋系列产品来了!

    原标题:主打智能分析,中维世纪智能先锋系列产品来了! 中维世纪智能先锋系列产品主打"智能分析",包含JVS-C-BP1H2M-AG.JVS-C-BP1H2M-PG(支持POE).J ...

  3. 中维世纪视频汇聚,为百路以上项目提供一站式视频集中管理服务

    中维世纪视频汇聚,以融视云和云视通平台为依托,以端到端产品能力为保障,将分散的不同品牌.不同协议的视频资源进行统一整合和集中管理,可实现视频图像资源大数据的一网汇聚,构建视频数据资源池,同时通过构建视 ...

  4. 中维世纪安卓开发文档

    中维世纪安卓开发记录 作为一个低级码农真的搞不懂中维世纪文档,只有windows和安卓的sdk,水平低或者应用场景广泛了最好直接购买海康威视的,网上教程比较多. 开发环境 Android Studio ...

  5. 中维世纪监控某一特定时间段视频的恢复

    中维世纪监控某一特定时间段视频的恢复 视频文件格式:MP4(3gp) 案例中硬盘被格式化,又录了一部分视频.此硬盘中有很多分区,用R-Studio扫描后基本确定了这一时段视频所在的分区,并且把分区镜像 ...

  6. 中维世纪助力邯郸某自来水公司实现视频资源汇聚

    自来水厂承载着城市的供水.排水.污水处理.再生水利用等工作,厂内配备着大量自来水生产场地及设备,需要对场地情况.设备运行情况.人员操作情况等进行监管以便及时发现并处理问题. 鉴于自来水厂的特殊性及重要 ...

  7. 海康威视设像头添加到中维世纪监控录像机的方法

    需要进海康威视设像头里面设置这二个地方 然后设置在中维世纪录像机里面 高级添加 协议为海康威视协议  端口80   帐号密码你设置的 添加保存就可以了

  8. java中 数组声明,java数组声明格式

    java 声明动态数组,java对象数组详解,java中声明数组,java数组声明格式 Java 中数组的声明一维数组的声明: 在 Java 中,数组是独立的对象,有自身的方法,不是变量的集合. 数组 ...

  9. java版魔力世纪,魔力世纪下载_魔力世纪Java版下载 - U盘量产网

    魔力世纪Java版是同名端游改编而成的大型角色扮演游戏,将端游中的精髓和玩法完美移植到手机上,并且针对手机端的操作习惯,打造便捷的操作模式,让玩家在家睡觉.躺着照样可以畅玩游戏.在端游原有的基础玩法上 ...

最新文章

  1. Deep Non-Line-of-Sight Reconstruction:深度非视域重建
  2. fpga如何约束走线_FPGA中的CLOCK REGION和SLR是什么含义
  3. 损失函数-经验风险最小化-结构风险最小化
  4. sonarQube 7.2版本下载配置pmd插件(版本要兼容),并设置只使用pmd规则
  5. Java基础查漏补缺(2)
  6. 【从入门到放弃】23种设计模式(1):设计模式综述
  7. 【机器学习】 - 激活函数与交叉熵Sigmoid, Softmax, binary_crossentropy, categorican_crossentropy区别
  8. Web服务器网管交流一下
  9. python中的引用,Python里的引用和拷贝
  10. eclipse svn Subversive
  11. 10个比较不错的 JavaScript 库
  12. Python基础PTA习题答案
  13. PS小知识(二)——画固定大小的形状
  14. Error installing to Instantiated: name=AttachmentStore state=Described
  15. snaker并行任务示例
  16. 奇葩经历之一_Hotmail邮箱无法查看和发送任何邮件
  17. 干货|我的三年产品基本功之PRD文档攥写
  18. 泰山OFFICE技术讲座:字体属性的上标研究1:上标是什么
  19. 著名的海龟式期货交易系统完整版来了!值得收藏!
  20. 【转】Tomato-shibby无线中继(无线级联)

热门文章

  1. 【cuda安装教程】GTX1050Ti+win10+cuda9.0+cudnn7.4.1安装过程记录
  2. 读书有益——》来自古诗词中的“想你”(一)
  3. Python爬虫下手,就得从高清美图开始!
  4. java+postgis实现根据两点生成模拟轨迹gps数据
  5. 旋翼无人机飞控的软件设计
  6. 什么是浅拷贝和深拷贝?
  7. 小程序 canvas 2d 绘制海报
  8. videojs自动播放
  9. C语言指针函数和函数指针详解
  10. 微信内h5页面打开小程序【详细教程】