嵌套路由中,多个子路由的 loader 能否并行执行?如何控制其加载顺序?
围绕“嵌套路由中,多个子路由的 loader 能否并行执行?如何控制其加载顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明所有子路由 loader 会并发执行,不能通过顺序写入改变加载顺序。
并发编程专题面试题第 8 页,显示第 351–400 题,共找到 448 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“嵌套路由中,多个子路由的 loader 能否并行执行?如何控制其加载顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明所有子路由 loader 会并发执行,不能通过顺序写入改变加载顺序。
用两个并发保存任务解释函数式更新如何组合加减计数,区分队列中的前一状态与闭包中的其他变量,并说明直接设置确定值仍然合理。
围绕“Redis 用 GET 再 SET 实现计数器为什么不可靠,INCR 解决了什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明读改写两步在并发下丢失更新、INCR 服务端原子完成。
围绕“在线上 Redis 直接跑大集合的 SINTERSTORE 有什么风险,如何规避”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 O(N) 运算阻塞主线程,应限制集合规模或用从库/离线计算。
围绕“Redis 有序集合为什么用跳表而不是平衡树来实现排序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确实现简单、范围查询高效、并发友好等原因。
围绕“Cache Aside(旁路缓存)模式的读写流程是什么,为什么是更新数据库后删缓存而不是先删缓存再更新”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出读 miss 回填、写时先写库再失效缓存的标准流程,以及先删缓存会被并发读回填旧值的问题。
围绕“Redis 缓存击穿(单个热点键过期被并发重建)有哪些防护手段,互斥锁与逻辑过期怎么选”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出热点键失效瞬间大量请求同时回源的现象,互斥重建保证一致性但阻塞、逻辑过期返回旧值异步刷新保证可用性的取舍。
围绕“缓存与数据库双写不一致时,延迟双删和订阅 binlog 失效缓存各自解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出延迟双删针对读写并发窗口的旧值回填、binlog 订阅把失效逻辑与业务解耦,不承诺强一致、不展开分布式事务。
围绕“Redis 分布式锁如何实现可重入与阻塞等待,为什么原生 SET NX 不具备这两种能力”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出可重入需哈希记录线程标识与计数、阻塞等待可用订阅或自旋。
围绕“Redis 分布式锁的超时时间如何设定,业务执行时间超过锁 TTL 会发生什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 TTL 过短导致锁提前释放引发并发冲突、过长导致故障恢复慢的权衡,以及看门狗续期思路。
围绕“在集群或多副本 Redis 上做分布式限流,为什么计数必须落在同一个键上,读改写并发下如何保证准确”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出限流状态需单键存储以利用单节点原子性、集群下同一会话哈希到同槽,以及 Lua 或 INCR 避免并发读改写丢失。
围绕“Redis RDB 持久化的触发方式有哪些,bgsave fork 子进程时写时复制带来什么风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 save 配置触发与手动 SAVE/BGSAVE 的区别,以及 fork 期间 COW 导致内存翻倍的隐患。
围绕“哪些场景该用 409 Conflict,它与 412、422 的边界是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须列举唯一约束、状态机冲突等场景并区分前提条件失败。
围绕“幂等键应该保存多久,请求未完成时相同键并发到达该怎么处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖完整回答要覆盖键生命周期与 in-flight 请求的串行化策略。
围绕“React Native Android 原生模块里 Callback、Promise 与同步方法分别适合什么返回边”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较一次性回调、异步 Promise、@ReactMethod(isBlockingSynchronousMethod) 的线程与错。
围绕“React Native Android 原生模块如何安全地从后台线程回到 UI 线程更新界面”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 ReactApplicationContext、Activity 生命周期与 UI 线程切换的所有权。
围绕“React Native 旧 Bridge 的异步序列化在大对象与高频调用下会出现什么瓶颈”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 JSON 化、批量队列与跨线程拷贝的成本。
围绕“React Native 原生模块初始化过早为什么会拖慢启动,如何判定是否该延迟初始化”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用首帧前是否被 JS 引用、是否占用主线程和是否注册广播做判断。
围绕“为什么某些 React Native iOS 原生模块需要实现 requiresMainQueueSetup”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明模块初始化是否触碰 UIKit 或主线程假设。
围绕“React Native iOS 原生模块中 RCT_EXPORT_MODULE 与 RCT_EXPORT_METH”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明模块名解析、方法暴露与线程返回值的最低配置,不深入 Swift 混编工程配置。
围绕“React Native 中 JSI 相比传统 Bridge 解决了哪类同步调用问题,又没有解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须说清直接持有 C++ 对象与同步调用的收益,以及线程安全和崩溃面仍存在。
围绕“为什么 React Native 中用 Animated 改变 width/height 无法走原生驱动,代价是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释布局属性需要走 Yoga 布局与 JS 线程每帧更新导致掉帧,并给出 transform 缩放或 LayoutAnimation。
围绕“React Native Animated 的 useNativeDriver 把什么工作移出了 JS 线程,支持哪”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明动画声明序列化后在原生侧执行、每帧不再过桥,并列出仅支持 transform/opacity 等非布局属性的限制。
围绕“React Native 手势跟手动画要保证 60fps,关键约束是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明手势事件经 JS 线程处理时,JS 忙即掉帧,因此要让跟手逻辑留在 UI/原生侧。
围绕“React Native 图片解码发生在哪个线程,为什么仍可能让 UI 掉帧”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明解码可 offload 但位图上传 GPU 与布局仍在主/UI 线程,大图或密集图片仍掉帧。
围绕“React Native 中 JS 线程被长任务阻塞时用户会看到什么现象,为什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明依赖 JS 的动画、触摸响应与渲染全部延迟的表现,以及把重计算移出 JS(原生模块、分片)的方向。
围绕“React Native 旧架构中 JS 线程、UI(主)线程与原生模块线程分别负责什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 JS 执行业务逻辑、UI 线程负责布局绘制与触控、桥负责异步通信的职责划分。
围绕“如何用 React Native 内置 Perf Monitor 判断卡顿发生在 JS 线程还是 UI 线程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出根据两条帧率曲线定位瓶颈侧的判读方法及对应的下一步排查方向。
围绕“React Native 中监听 ScrollView 的 onScroll 为什么必须设置 scrollEvent”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 iOS 默认不连续派发滚动事件、回调频率与 JS 线程压力的关系,并引出把滚动逻辑移到原生/动画线程的方向。
围绕“React Native 页面转场卡顿的官方排查思路是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按官方性能文档说明转场期间 JS 线程过载是主因,以及 InteractionManager、减少转场期渲染的缓解手段。
围绕“Android 上如何用 Systrace 分析 React Native 应用的掉帧来源”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Systrace 能看到 JS/UI/原生各线程时间线、区分帧丢失责任侧的方法,并标注 Android 限定。
围绕“PostgreSQL 显式事务中一条语句报错后,为什么后续语句都报 current transaction is a”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释事务进入失败状态必须回滚或用保存点恢复的设计理由。
围绕“数据库事务的 ACID 四个属性分别保证什么,哪些属性在并发下会打折扣”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求区分原子性、持久性等由日志与锁各自承担的部分。
围绕“PostgreSQL 咨询锁(advisory lock)与行锁的本质区别是什么,适合哪些应用场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕强调其不绑定具体行、按应用语义取锁的特性与典型用途,不列出全部咨询锁函数。
围绕“PostgreSQL 会话级与事务级咨询锁在释放时机上有什么区别,选错会导致什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答连接复用(连接池)下会话级锁泄漏的风险。
围绕“定位到阻塞其他会话的长事务后,pg_cancel_backend 与 pg_terminate_backend 该如”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较取消当前语句与断开整个连接的影响面及回滚代价。
围绕“先 SELECT 判断余额再 UPDATE 扣款为什么在高并发下可能超扣,有哪几种修复方式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较条件 UPDATE(WHERE balance>=n)、行锁与隔离级别三种修复的强弱。
围绕“为什么给 PostgreSQL 大表加列默认值或建普通索引可能长时间锁表,有什么低影响的替代方案”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答 ACCESS EXCLUSIVE 锁的阻塞效果与 CONCURRENTLY 等低锁方案的取舍。
围绕“PostgreSQL 如何检测死锁,deadlock_timeout 参数控制的是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答等待超时后做环检测并选牺牲事务中止的机制与参数含义。
围绕“数据库死锁形成需要哪些条件,两个事务更新两张表的什么顺序会触发死锁”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕用 AB/BA 顺序交叉加锁的经典例子回答四个必要条件。
围绕“拿到 PostgreSQL 死锁日志后,如何从中还原出是哪些语句按什么顺序持锁造成的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求会读日志中的进程、等待关系与涉及语句,给出固定加锁顺序的预防结论。
围绕“事务因死锁被选为牺牲者中止后,应用层的重试逻辑应该怎么写才安全”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确错误码 40P01 的识别、整事务重试与幂等性要求。
围绕“PostgreSQL 中把隔离级别设为 Read Uncommitted 会发生什么,脏读真的存在吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要指出 PostgreSQL 将其映射为 Read Committed 的实现决策。
围绕“为什么 PostgreSQL 提供 FOR NO KEY UPDATE 这种行锁,它比 FOR UPDATE 弱在哪”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要指出不修改键列的更新可用更弱锁从而减少与外键检查的冲突。
围绕“SELECT FOR UPDATE NOWAIT 与 SKIP LOCKED 在拿不到锁时行为有何不同,各自适合什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖分别用立即报错抢锁与跳过已锁行做任务队列的例子回答。
围绕“SELECT FOR UPDATE 与 FOR SHARE 锁住的行分别允许其他事务做什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较两种行锁强度及与 NO KEY UPDATE、KEY SHARE 的冲突关系。
围绕“为什么更新父表主键或删除父表行时可能被子表外键检查阻塞,涉及哪些锁”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明外键检查在父行上取 KEY SHARE 锁与更新锁的冲突关系。
围绕“PostgreSQL 中每条单语句自动成事务与显式 BEGIN 多语句事务在错误处理上有何差别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较单语句失败即整体回滚与显式事务出错后只能 ROLLBACK 的状态差异。
围绕“面对一个转账类业务,如何在 Read Committed、Repeatable Read、Serializable ”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖按一致性需求、重试成本与吞吐给出决策依据。
围绕“PostgreSQL 的 ACCESS SHARE、ROW EXCLUSIVE、ACCESS EXCLUSIVE 这”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要能判断 DDL 与 DML 常见组合是否互斥,不深入每种子模式的罕用场景。