手撕黄题好难
点赞 评论

相关推荐

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重写/分库分表 → 验证:压测对比 → 监控:持续观察
点赞 评论 收藏
分享
12-22 17:59
已编辑
北京邮电大学 C++
6月的时候比较迷茫,发了个跟cpp选手如何走相关的帖子,也收到了很多牛友的回复(感谢大伙们)。最后是打算多学一门后端语言拓宽找实习的范围,go和java之间因为觉得springboot挺不错所以多学了一会java。最后发现其实cpp找实习没有想象的那么难,虽然方向多但还是有面试机会的,而且感觉写java后端没那么有意思,有点后悔感觉😥😥😥,而且约面以cpp为主下面写写面试记录以及一些感受吧项目:1cpp项目1java项目timeline:10.1开刷代码随想录+hot10010.14 快手音视频架构 一面挂10.21 百度搜索架构cpp 一面过了好几天挂(感觉答得差不多算法也写出来了)10.27虾皮推荐系统cpp 一面 10.30 二面挂10.29托特私募笔试,之后线下面聊得挺好的但是一周后挂10.31 腾讯csig音视频相关cpp 一面挂11.6京东java后端 一面 11.11二面 11.13三面挂11.17京东安全java后端 一面挂12.02蚂蚁oceanbase数据库内核cpp 一面 12.05二面挂有几个小厂过了,但感觉不喜欢干,拒了之前总怕面不同cpp岗位会问很多相关知识,实际上大部分还是根据简历问的,因为项目基本是自己手敲部署的,所以对项目很熟悉,关于项目的问题基本都能跟面试官聊很多,不过cpp岗手撕经常出问题,比如虾皮的叫我撕线程池啥的之前没准备,而且通常需要比较熟计网操作系统数据库,这些还没学过之后回归cpp了,打算多学学计网操作系统数据库,做一下cmu15445,不知道如果6月的时候打算cpp走到底现在会不会不一样
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务