/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}
为了优化大基数开票任务的优化-CSDN博客以及实际落地,本次介绍开发对应demo过程
本章作为本次VibeCoding技术选型以及整体架构介绍,可持续跟进:
PniubiPlus/ConcurrentHashMap_SplitingThreadPool_Demo: Demo
https://github.com/PniubiPlus/ConcurrentHashMap_SplitingThreadPool_Demo
不同于前文采用一种业务一个线程池的方案,本次只采用两个线程池,快任务慢任务分别各一个线程池即可
线程池:采用快慢两池,按任务性质隔离
- fastPool:跑充值、查询、下单等短任务,core=max=10,保护普通业务 RT。
- heavyPool:只跑开票重任务,core=8,max=32,支持并行分片,可独立扩缩容。
- 理由:线程是稀缺资源,按“快慢特征”分池精准解决阻塞,池少好监控好调参;必要时特殊业务未来再单独加池
本Demo做了以下几种模拟情况:
①未改进版本开票(没有拆分线程池)[整个系统所有任务使用同一个线程池]
②改进版本开票(快慢任务线程池)[将大量的开票任务和其他零星小任务隔离开]
③充值任务(模拟快速任务)[类似的快速任务还可以是查询、下单这类扁平快的任务]
效果突出:

本文简单介绍,后续会有细节剖析




