为什么高并发服务用 epoll 而不是信号驱动 I/O(O_ASYNC/SIGIO)?
围绕“为什么高并发服务用 epoll 而不是信号驱动 I/O(O_ASYNC/SIGIO)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出信号携带信息少、处理函数受限、队列溢出丢失事件。
异步编程专题面试题第 5 页,显示第 201–250 题,共找到 292 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“为什么高并发服务用 epoll 而不是信号驱动 I/O(O_ASYNC/SIGIO)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出信号携带信息少、处理函数受限、队列溢出丢失事件。
围绕“sync_file_range 为什么适合写前日志(WAL)这类需要细粒度回写的场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明可按字节范围启动回写而不必等待完成,比 fsync 粒度细。
围绕“write 返回成功后,数据到达磁盘的顺序和时机由什么决定”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 write 只保证进页缓存、由 flusher 线程异步写回,及掉电风险。
围绕“Linux 信号有哪些不可靠性,为什么信号处理函数里只能调用异步信号安全函数”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明信号不排队、可重入问题及 async-signal-safe 限制。
围绕“signalfd 相比传统信号处理函数解决了什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明把异步信号转为同步 fd 事件、可进 epoll 的优势。
React 输入框为什么提示从非受控变为受控?从异步回填 undefined、文本空值和复选框 checked 类型入手,说明默认值、稳定模式和组件重建的区别。
区分默认值与用户当前编辑值,说明异步数据回填、表单 reset、业务 key 重建与 ref 命令式赋值的选择,避免用随机 key 覆盖草稿或将 defaultValue 当成持续绑定。
围绕“React 错误边界捕获不到哪些错误,事件回调和异步代码里的报错该怎么办”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须列清渲染期可捕获与事件处理、异步、SSR 中不可捕获的边界,并给出 try/catch 兜底方案。
解释原生 select multiple 的字符串数组 value、selectedOptions 与 FormData.getAll,说明选项删除、异步回填、空选择和选中顺序的业务边界。
围绕“React 19 的 useOptimistic 在共享服务器数据的界面上如何实现乐观更新,提交失败时界面如何回退”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出乐观值仅在异步操作期间临时呈现、完成后回到真实状态这一生命周期,不展开 useActionState 的表单集成。
围绕“React 19 的 use() 相比 useContext 在读取共享数据上多出了什么能力”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 use 可在条件或循环中调用、且能直接读取 Promise 配合 Suspense,不展开服务端组件的用法。
围绕“为什么不能直接把 async 函数传给 React useEffect,又该怎样组织 await 与取消信号”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Effect 返回值只能是 cleanup 而非 Promise。
以文档订阅切换说明 setup 与 cleanup 的配对关系、旧闭包与新参数、依赖未变时的行为,以及 Strict Mode 检查和异步请求迟到结果的处理。
useRef 和 useState 都能跨渲染保留数据,为什么只有 state 更新会触发界面变化?用计时器句柄、搜索输入和异步闭包说明选择依据、快照语义及渲染阶段限制。
围绕“React 19 中 startTransition 接受 async 函数(Action)后与 React 18 ”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须对比 React 19 异步 Action 自动管理 pending/错误与 React 18 只接受同步作用域的差异。
通过报价与确认按钮解释 useMemo 缓存计算结果、useCallback 缓存函数引用的区别,展示完整依赖和旧闭包边界,并说明函数创建、函数调用、请求去重与异步缓存并不是同一件事。
围绕“action 中执行长时间异步任务(如文件上传)时,如何避免阻塞主线程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 background task + polling or redirect to status page,不能让 acti。
围绕“loader 使用 async/await 时,为何必须配合 Suspense?其作用机制是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Suspense 用于等待异步数据,否则页面会冻结,不能仅提“防止白屏”。
围绕“React 的 'use server' 与 Server Functions 解决了什么问题,客户端调用它们时实际”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明客户端调用被框架转为对服务端的请求并返回 Promise。
围绕“为什么只有 Suspense 组件本身不能让 React 在渲染期间直接 await 数据,还需要什么配合”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明需要支持 Suspense 契约的数据源或框架集成(抛出 promise 的读取协议)。
围绕“React 事件处理器中 await 之后再读取 state 拿到的是旧值,如何拿到最新状态”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须诊断出异步代码捕获的是发起时那次渲染的快照,并给出函数式更新或 ref 镜像最新值两种修复的取舍。
通过 Promise 和定时器内的两个状态更新比较 React 17、React 18 createRoot 与旧入口,说明自动批处理的观察方法和 await 边界。
用两个并发保存任务解释函数式更新如何组合加减计数,区分队列中的前一状态与闭包中的其他变量,并说明直接设置确定值仍然合理。
围绕“Redis 大 key 会造成哪些问题,排查到之后如何按数据类型拆分”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出网络阻塞、删除阻塞(可 UNLINK 异步删)、内存倾斜,以及哈希/集合按字段或业务维度拆成多键的思路。
围绕“Redis 缓存击穿(单个热点键过期被并发重建)有哪些防护手段,互斥锁与逻辑过期怎么选”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出热点键失效瞬间大量请求同时回源的现象,互斥重建保证一致性但阻塞、逻辑过期返回旧值异步刷新保证可用性的取舍。
围绕“Read Through、Write Through 与 Write Behind 三种缓存模式的职责划分和一致性差”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出三者中缓存层与数据库的读写责任归属,以及 Write Behind 异步落库带来性能提升与丢数据风险。
围绕“Redis 官方提出的 Redlock 算法如何在多个独立实例上加锁,它解决单实例主从切换下的什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出主从异步复制下故障转移可能丢锁,Redlock 用多数派加锁缓解,不深入 Martin Kleppmann 的争议细节。
围绕“Redis 主从复制为什么是异步的,主节点写入成功未同步到副本就宕机会怎样,WAIT 命令能缓解什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出异步复制下故障切换丢失未传播写,WAIT 阻塞等待指定副本数确认以提高持久性但不保证强一致。
围绕“耗时操作无法同步完成时,202 Accepted 加状态轮询的接口怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出任务资源建模与完成转向 303 或结果 URI 的方案。
围绕“批量接口该限制单批数量吗,大批量请求的超时和内存问题怎么控制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出上限设定、异步化与分片策略。
围绕“React Native 中获取组件真实尺寸与屏幕位置有哪些方式,onLayout 与 measure 各适合什么场”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求比较布局事件时机与异步测量的准确性差异。
围绕“React Native Android 原生模块里 Callback、Promise 与同步方法分别适合什么返回边”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较一次性回调、异步 Promise、@ReactMethod(isBlockingSynchronousMethod) 的线程与错。
围绕“React Native 旧 Bridge 的异步序列化在大对象与高频调用下会出现什么瓶颈”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 JSON 化、批量队列与跨线程拷贝的成本。
围绕“React Native TurboModule 的 Codegen 规格里,为什么不能随意使用动态 any 或复杂”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须落到可生成 C++/ObjC/Java 绑定、可空性与 Promise 返回约束。
围绕“React Native 中频繁的桥(Bridge)通信为什么成为性能瓶颈”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释异步 JSON 序列化消息的成本与高频小消息(滚动、手势)场景的问题,并指出合并通信或原生化处理的方向。
围绕“React Native 旧架构中 JS 线程、UI(主)线程与原生模块线程分别负责什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 JS 执行业务逻辑、UI 线程负责布局绘制与触控、桥负责异步通信的职责划分。
围绕“React Native 新架构(Fabric/JSI)相对旧桥接模型在性能上解决了什么核心问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 JSI 同步调用与 Fabric 渲染管线消除异步桥瓶颈的核心收益,并标注这是新架构专属内容。
围绕“高并发计数器更新同一行成为热点时,为什么性能会急剧下降,有哪些缓解手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖从行锁串行化解释瓶颈并比较分桶计数、异步汇总等设计。
围绕“如何在 Svelte 组件中使用 `await` 从异步函数获取数据,并在数据加载完成时渲染内容”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 `await` 可直接在模板中使用,且会暂停渲染直到值就绪;不能使用 `Promise.then` 代替。
围绕“在 Svelte 中使用 `await` 获取异步数据时,如何处理请求失败的情况并显示错误提示”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 `await` 可结合 `try/catch` 使用,且错误状态应通过响应式变量控制视图展示;不能忽略异常。
围绕“如何在 Svelte 中通过响应式变量管理异步数据加载过程中的“加载中”状态”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 `loading` 变量应在 `await` 前置为 `true`,在 `catch` 后设为 `false`;不能仅用 `a。
围绕“如何在 Svelte 组件中通过 `stream` 模式处理持续更新的数据流,如实时消息”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 `stream` 是一种延迟求值的异步结构,其值可在任意时刻被 `await` 获取;不能将其视为普通变量。
围绕“SvelteKit 表单 action 接收 JSON 格式请求体时,如何正确解析并处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明使用 await request.json()。
围绕“SvelteKit 的 load 函数中异步数据获取失败时,如何正确处理并返回错误状态”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须展示如何使用 { error: new Error(...) } 结构传递错误。
围绕“SvelteKit load 函数中如何延迟加载部分数据以优化首屏性能”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 async/await 拆分数据获取并配合 Suspense。
围绕“读路径降级和写路径降级的难度为什么不同,写路径有哪些可行的降级手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确写路径涉及数据正确性所以不能简单丢弃,并给出写转异步、削峰排队等手段及其代价。
围绕“秒杀场景下单个商品的库存扣减热点如何解决,为什么不能直接依赖数据库行锁”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明行锁串行化的吞吐瓶颈,并给出缓存预扣+异步落库或库存分桶的方案及其一致性风险。
围绕“分片后跨分片的聚合查询和分页如何实现,各方案代价是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较广播查询、冗余汇总表、异步离线聚合三种方案的延迟与一致性代价。
围绕“评论数、点赞数在高并发下如何避免计数漂移,列表页又要多快看到变化”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分精确计数、近似计数与异步校准任务的使用场景。
围绕“图片上传后生成多尺寸缩略图,同步处理、异步任务和按需生成怎么选”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按首屏延迟、存储放大与热点回源选择管线。