![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 93
快乐妮子
我不知道终点在哪里,但我知道此刻的自己需要一步一脚印的向前走!
展开
-
ThreadPoolExecutor的线程复用底层的源码了解下?
你知道的越多,不知道的也越多!线程池源码1. 整体思路2. 学习源码想必大家对线程池都有了解吧,必须掌握的知识点有:构造函数里的入参列表、常见有哪几种线程池以及使用场景、为什么要用线程池、线程池接受到一个任务后的处理流程等等。本文对以上问题不做说明了,主要是想讲明白其中的“线程复用”底层的原理。啰嗦一句: 看源码不要一上来就死磕每一行代码(相信我死磕撑不了几分钟),先掌握大体思路,然后再仔细品。1. 整体思路相信以下这张图大家都很熟悉了:其实就是线程池接受任务的处理规则。那图里的规则哪来.原创 2021-10-02 15:57:35 · 176 阅读 · 1 评论 -
动态代理?JDK Proxy 和 CGLib 有什么区别?
文章目录动态代理是什么?JDK代理和CGLib代理的简单使用区别分析别告诉我,作为Java开发工程师你没用过Spring;别告诉我,不知道Spring充分运用了AOP思想;别告诉我,不知道AOP思想的实现没有用到动态代理。如果这些问题,全都不知道的话,emmm… 没事,大兄弟,我们一起学习吧,我们还年轻不是嘛!动态代理是什么?在这之前不得不提下Java的设计模式-代理模式。代理模式主要是代理类为委托类负责于预消息处理、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关原创 2020-10-01 00:23:47 · 368 阅读 · 0 评论 -
FutureTask 会 “吞掉“ 异常是怎么回事?需要注意些什么?
这次 , 没有废话,切入正题!在Callable#call方法里,如果没有try-catch的情况下,如果call方法运行时,一旦出现异常,那么该异常会被Future所接收到,且只有调用 Future # get 方法才会抛出。也就是说,如果你不调用get方法,做些异常处理的话,真的发现不了问题发生在哪?import java.util.concurrent.Callable;public class MyCallable implements Callable<String> {.原创 2020-09-28 14:58:29 · 2311 阅读 · 1 评论 -
Java线程池真的很重要,了解一下?(笔记篇)
主要内容来源于zycxnanwang的博客源文章:《Java线程池,你五分钟讲完,而我和面试官聊了半小时》自己看完简单总结下,方便日后快速的回忆起来。(1)核心线程数 < 最大核心线程数 & 阻塞队列足够可以容纳所有的任务import com.google.common.util.concurrent.ThreadFactoryBuilder;import org.apache.tomcat.util.threads.ThreadPoolExecutor;import ja.原创 2020-07-23 16:32:12 · 278 阅读 · 0 评论