看来是同一个面试官,我是你上一个吧,同样凉了
点赞 4

相关推荐

12-21 22:35
门头沟学院 Java
1、原理:每个线程维护一个ThreadLocalMap,以ThreadLocal为key存储变量副本,实现线程隔离。问题:内存泄漏(弱引用key被回收但value未清理)、父子线程无法传递。2、主要用于事务管理(TransactionSynchronizationManager)、请求上下文(RequestContextHolder)、安全上下文等,保证线程安全。3、冲突解决:ThreadLocalMap用线性探测,HashMap用链表+红黑树;扩容机制:ThreadLocalMap渐进式清理,HashMap一次性rehash;key类型:ThreadLocalMap的key是弱引用4、corePoolSize(核心线程数)、maximumPoolSize(最大线程数)、keepAliveTime(空闲时间)、workQueue(任务队列)、threadFactory、rejectedExecutionHandler(拒绝策略)5、通过ThreadPoolExecutor的setter方法:setCorePoolSize()、setMaximumPoolSize()、setKeepAliveTime()等,结合配置中心实现热更新。6、监听配置变更→参数校验→调用线程池setter方法→记录变更日志,通常结合Apollo/Nacos等配置中心实现。7、Zookeeper:强一致性、自动过期、惊群效应Redis:高性能、需手动续期、主从切换可能丢锁8、原子性(SET NX EX)、锁续期、主从一致性、可重入性、公平性、异常释放等。9、基于业务执行时间统计(P99耗时 × 2-3倍)+ 网络延迟 + 安全边界,配合自动续期机制。10、定位:慢查询日志/监控工具 → 分析:EXPLAIN执行计划 → 优化:索引优化/SQL重写/分库分表 → 验证:压测对比 → 监控:持续观察
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务