记录 ThreadPoolExecutor的一些细节
任务队列放入任务的执行方法
众所周知,ThreadPoolExecutor内部任务队列属性类型定义为:private final BlockingQueue
三种提交任务方式:
- put(E element):将指定元素插入队列,如果队列已满,则阻塞当前线程,直到有空间可用。
- add(E element):将指定元素插入队列,如果队列已满,则抛出异常。
- offer(E element):将指定元素插入队列,如果队列已满,则返回 false。
其execute方法和beforeExecute方法的执行顺序
若只看方法名,或许会以为beforeExecute会在execute方法执行前执行,事实并非如此,实际上,execute 方法是线程池对外提供的主要方法,用于提交任务到线程池中执行,而beforeExecute 方法则是在任务真正被执行之前由线程池调用的回调方法。
beforeExecute调用的位置:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~