- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 线程池需要关闭吗
线程池关闭的意义不仅仅在于结束线程执行,避免内存溢出,因为大多使用的场景并非上述示例那样 朝生夕死。线程池一般是持续工作的全局场景,如数据库连接池。Executors作为局部变量时,创建了线程,一定要记得调用executor.shutdown();来关闭线程池,如果不关闭,会有线程泄漏问题。import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class T..
2021-08-27 11:17:49 9548 11
原创 SpringCloud的@LoadBalanced注解使用的理解
在使用springcloud ribbon客户端负载均衡的时候,可以给RestTemplate bean 加一个@LoadBalanced注解,就能让这个RestTemplate在请求时拥有客户端负载均衡的能力:@Bean@LoadBalanced //开启负载均衡的功能RestTemplate restTemplate() { return new RestTemplate();}@LoadBalanced的注解源码:/** * Annotation to mark a
2021-08-26 18:24:27 738
原创 拦截器的执行顺序
1. 依次建立3个拦截器public class BootInterceptor implements HandlerInterceptor { /* 1 */ public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object arg2) { StackTraceElement se = Thread.currentThread().getStackTrace()[1..
2021-08-26 12:44:27 492
原创 杂谈---
你持续学习,努力工作,年年涨薪 20%(注意我说的是年年,这很不容易,也许你会说跳一次槽就可能翻倍,但你能年年跳槽翻倍么),十年后你年的收入将是十年前的 6.2 倍,离十倍还有距离,但换算为年薪也有七八十万了。所以要想靠加薪加到月入十万真的是一件极难的事情,而且即使做到了也离我们心中的无价青春,还差很远吧? 认清 … 获得拐点出现的机遇,可能你也只能持续努力地积累下去。 关于人生的选择,从来都是 All In,可没有股票那种分批建仓的办法。写到这里想起了曾经在网上记录下来的几句话,现分享给你:我不停的擦
2021-08-11 22:55:17 126
原创 限流技术小计
前言 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。 缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限流。限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请...
2021-08-11 21:53:07 137
原创 一个线程池中的线程异常了,那么线程池会怎么处理这个线程?
线程池常用问题 不允许使用的原因 测试流程 测试用例 抛出堆栈异常为啥对了一半? 怎么拿到submit的异常堆栈? 源码查看 执行executes方法时 执行submit方法时 不影响其他线程任务 这个线程会被放回线程池为啥错了 结论 1、当执行方式是execute时,可以看到堆栈异常的输出 2、当执行方式是submit时,堆栈异常没有输出。但是调用Future.get()方法时,可以捕获到异常 3、不会影响线程池里面其他线程的正常执行 4、线程池会
2021-08-11 16:15:39 4497 1
MYCAT指南1.6.0
2018-02-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人