线程池技术
文章平均质量分 92
Java多线程的核心,线程池技术,非常常用,极为关键
fenglllle
这个作者很懒,什么都没留下…
展开
-
Spring Cloud zuul扩展能力设计和心得
实际上Spring Cloud已经废弃zuul了,改用gateway,但是webflux的技术并没在实际项目大规模普及,还有很多servlet NIO的应用,所以zuul还是很有必要改造的,实测zuul调优(调节转发的连接池)跟gateway性能上差不多,所以研究了下zuul,发现设计理念很不错。原创 2023-10-06 12:23:48 · 188 阅读 · 0 评论 -
Spring Cloud zuul与CloseableHttpClient连接池,TLS证书认证
实际上,对于技术而言,无论使用任何框架,设计思路都是有异曲同工的地方,对于HTTP代理,无论是zuul(servlet)还是gateway(netty),或者NGINX;本质处理逻辑还是IO的区别,HTTPS协议对于所有的逻辑都是一样的,关键在于定制化吧,zuul对于简单应用还是很不错的,方便定制化,也可以使用gateway,相对要复杂一点。原创 2023-09-08 19:58:44 · 359 阅读 · 0 评论 -
Tomcat线程居高不下的原因
前言笔者在解决业务的问题中发现,如果Tomcat在并发延迟突变高后,很容易线程数量飙高,而且短时间是降不下去的,除非重启,但是不能线程飙高就重启吧,实际上是线程池的逻辑,然而Tomcat开放的配置是限制的。1. Tomcat运行的线程配置Tomcat运行过程一般都是在server.xml中配置catalina-exec-xxx和http-nio-8080-xxx另外的配置2. Tomcat线程飙高很久的原因线程池的线程数量要超过core数量必须要正在执行的任务线.原创 2022-01-24 22:30:21 · 3235 阅读 · 0 评论 -
ThreadPoolExecutor线程复用与超时销毁的原理
前言线程池基本上是每个业务都接触的,然而线程池是怎么复用线程,线程是怎么自动超时回收♻️,core核心线程为什么不回收,一直没有过多关注,最近有疑问这些事怎么实现的,偶有所得。1. 原理分析其实很早之前,笔者就分析了ThreadPoolExecutor的源码,只是并没有针对线程复用,回收的角度去分析原理,单纯的分析了源码主逻辑。(65条消息) JDK8线程池-ThreadPoolExecutor源码解析_fenglllle的博客-CSDN博客https://blog.csdn.net/fen原创 2021-11-09 23:35:59 · 2429 阅读 · 0 评论 -
JDK8线程池-ThreadPoolExecutor动态调整corePoolSize与maximumPoolSize
前言线程池ThreadPoolExecutor在运行的过程中,业务并发量变动,需要不停服务调整线程池的线程数,ThreadPoolExecutor支持动态调整corePoolSize与maximumPoolSize的值。1. 示例demopublic class ThreadChangeTest { public static void main(String[] args)...原创 2018-11-25 10:28:42 · 10659 阅读 · 7 评论 -
JDK8线程池-Executors-ThreadPoolExecutor用法
前言Executors工具类的用法与缺陷1. 固定线程的线程池 ExecutorService ex1 = Executors.newFixedThreadPool(5); for (int i=0;i<10;i++){ ex1.execute(()-> System.out.println(Thread.currentThread().ge...原创 2018-10-28 21:28:08 · 2960 阅读 · 0 评论 -
JDK8线程池-ThreadPoolExecutor执行结果FutureTask源码分析与优化
前言 上一章讲述了线程池ThreadPoolExecutor的原理。在线程池的运算过程结束后可以有返回值1. ExecutorService 示例public static void main(String[] args) { ExecutorService executorService = Executors.newFixedThreadPool(6);...原创 2018-10-12 21:25:06 · 1691 阅读 · 0 评论 -
JDK8线程池-ThreadPoolExecutor源码解析
JUC(java.util.concurrent)线程池工具类Executors是我们常用的类,处理大批量任务时,非常重要,提供程序的并发能力。虽然很多编码规范(A公司)不推荐使用此工具类,只有明白线程池的工作原理才能在适当的情况下使用。1. Executors用法有3大类,分别是红黄蓝(原创 2018-09-24 00:53:38 · 2987 阅读 · 1 评论 -
JDK8线程池-ThreadPoolExecutor参数
前言我们使用线程池工具类,常用的newFixedThreadPool方法就是使用的ThreadPoolExecutor public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, ...原创 2018-07-20 11:38:33 · 1246 阅读 · 0 评论 -
InheritableThreadLocal父线程传递子线程线程安全
前言 最近做项目,需要全链路跟踪,有各种比较成熟的方案,MDC/NDC log方式;zipkin之类的框架。究其根源是ThreadLocal与InheritableThreadLocal。下面看看两者的区别。1. threadLocal demopublic class ThreadLocalDemo { static ThreadLocal<String...原创 2019-10-05 17:55:48 · 1231 阅读 · 4 评论