Wesley13 Wesley13
4年前
spring feign http客户端连接池配置以及spring zuul http客户端连接池配置解析
背景Feign和网关Zuul的RPC调用,实际上都是HTTP请求。HTTP请求,如果不配置好HTTP连接池参数的话,会影响性能,或者造成堆积阻塞,对于其中一个微服务的调用影响到其他微服务的调用。源代码类比解析本文基于SpringCloudDalston.SR4,但是基本思路上,这块比较稳定,不稳定的是Feign本身Htt
Wesley13 Wesley13
4年前
java中线程的生命周期
java中线程的生命周期线程是java中绕不过去的一个话题,今天本文将会详细讲解java中线程的生命周期,希望可以给大家一些启发。java中Thread的状态java中Thread有6种状态,分别是:1.NEW新创建的Thread,还没有开始执行2.RUNNABLE可运行状态的T
Wesley13 Wesley13
4年前
MySQL 内核线程简要分析
若接触过Oracle的学者,想必应该都知道Oracle的体系结构,Oracle体系结构中涉及的进程诸如:PMON、SMON、LGWR、CKPT、DBWR\_N等等那MySQL里面的线程是怎么样的呢?(因为MySQL是单进程多线程结构),带着这个疑问,进行了查阅资料及调试,总结为:MySQL启动时,默认是23个线程。实验环境Linux:CentO
Wesley13 Wesley13
4年前
Java并发源码之ReentrantLock
ReentrantLock介绍ReentrantLock是一个可重入的互斥锁,与使用synchronized方法和语句访问的隐式监视锁具有相同的基本行为和语义,但具有扩展功能。ReentrantLock属于最后一个成功加锁并且还没有释放锁的线程。当一个线程请求lock时,如果锁不属于任何线程,将立马得到这个锁;如果锁已经被
Easter79 Easter79
4年前
ThreadLocal 原理和使用场景分析
ThreadLocal不知道大家有没有用过,但至少听说过,今天主要记录一下ThreadLocal的原理和使用场景。使用场景直接定位到ThreadLocal的源码,可以看到源码注释中有很清楚的解释:它是线程的局部变量,这些变量只能在这个线程内被读写,在其他线程内是无法访问的。ThreadLocal定义的通常是
Stella981 Stella981
4年前
Executor框架详解
任务是一组逻辑工作单元,线程是使任务异步执行的机制。下面分析两种通过创建线程来执行任务的策略。1将所有任务放在单个任务中串行执行;2为每个任务创建单独的线程来执行实际上两种方式都存在一些严重的缺陷。串行执行的问题在于其糟糕的响应和吞吐量;而为每个任务单独创建线程的问题在于资源管理的复杂性,容易造成资源的浪费和过度消耗,影响系统的稳定性。为了提
Wesley13 Wesley13
4年前
Java多线程下单例
/多线程下的单例///饿汉式classSingle{privatestaticfinalSinglesnewSingle();privateSingle(){}publicstaticSingleg
Mybatis的parameterType造成线程阻塞问题分析 | 京东云技术团队
最近在新发布某个项目上线时,每次重启都会收到机器的CPU使用率告警,查看对应监控,持续时长达5分钟,对于服务重启有很大风险。而该项目有非常多Consumer消费,服务启动后会有大量线程去拉取消息处理逻辑,通过多次Jstack输出线程快照发现有很多BLOCKED状态线程,此文主要记录分析BLOCKED原因。
深入理解分布式锁:原理、应用与挑战| 京东物流技术团队
前言在单机环境中,我们主要通过线程间的加锁机制来确保同一时间只有一个线程能够访问某个共享资源或执行某个关键代码块,从而防止各种并发修改异常。例如,在Java中提供了synchronized/Lock。但是在分布式环境中,这种线程间的锁机制已经不起作用了,因