![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 93
ddxd0406
这个作者很懒,什么都没留下…
展开
-
springboot2.0下hystrix dashboard Unable to connect to Command Metric Stream解决办法
最近在学习springcloud,实践hystrix dashboard仪表盘的时候,不管是按照书上的还是网上的,都提示Unable to connect to Command Metric Stream。看到这篇文章http://blog.csdn.net/qq_20094989/article/details/79530995说springboot2.0不行,1.5可以,试了一下果然行,那2....原创 2018-03-21 17:47:58 · 19778 阅读 · 38 评论 -
包装实现一个具有重试机制的RestTemplate
工作中经常会遇到某些接口超时、返回的数据不是我们想要的,在这些情况下,可能会要求我们对该接口进行重试,但是有的接口需要重试三次,有的需要重试两次,有的不需要重试;有的返回连接超时才重试,有的读取超时才重试,有的404才重试;有的返回-1才重试,有的返回null才重试;有的超时时间3秒,有的30秒。各种各样的场景需要我们在调用完成后自己判断是否进行重试以及进行几次重试。现在springcloud提供...原创 2018-06-04 12:26:30 · 9303 阅读 · 3 评论 -
Java8之ThreadPoolExecutor实现原理
java线程的创建和销毁是要消耗资源的,Executor就是为了复用线程才设计的,ThreadPoolExecutor是Executor的典型实现,通过下图来简单概述一下ThreadPoolExecutor实现原理ThreadPoolExecutor有一个核心线程池和一个最大线程池,核心线程池内的线程不会因为取不到任务而销毁 提交任务时会先尝试添加核心线程,如果核心线程池没满就添加新的核...原创 2018-08-07 19:21:11 · 985 阅读 · 0 评论 -
Java8之ConcurrentHashMap实现原理
在java8之前ConcurrentHashMap是使用分段锁来实现并发的,数据结构为hashmap(数组加链表)的基础上再套一层segment数组,锁加在segment元素上。java8实现了粒度更细的加锁,去掉了segment数组,直接使用synchronized锁住hash后得到的数组下标位置中的第一个元素 ,如下图,这样加锁比segment加锁能支持更高的并发量。另外,在java8...原创 2018-08-05 22:18:30 · 9129 阅读 · 3 评论 -
Java8之ScheduledThreadPoolExecutor实现原理
ScheduledThreadPoolExecutor是一个可实现定时任务的线程池,ScheduledThreadPoolExecutor内的任务既可以在设定的时间到达时执行一次,也可以相隔固定时间周期执行。ScheduledThreadPoolExecutor继承自ThreadPoolExecutor,关于ThreadPoolExecutor的原理可参考:Java8之ThreadPool...原创 2018-09-20 16:39:57 · 1544 阅读 · 0 评论 -
java移位运算符对右侧参数进行模运算
java中int型数据占4字节,每字节是8个二进制位,也就是int型占了32个二进制位。当进行移位运算时,无论左移还是右移,移动超过32位的话,意味着所有的位都移出了,数据变得毫无意义,因此java在int型移位时会先对移位运算符右边的值(需要移动的位数)对32取模,模就是最后要移动的位数。 public static void main(String[] args) { ...原创 2018-09-20 17:38:24 · 721 阅读 · 0 评论