SharedArrayBuffer 在 Worker 之间共享内存时,它的内存可见性如何保证?
SharedArrayBuffer 在 Worker 之间共享内存时,它的内存可见性如何保证? 本文先给出可直接复述的结论,再用最小代码说明SharedArrayBuffer 内存可见性 Atomics的工作方式、判断依据、项目边界和常见误区。
并发编程专题面试题第 2 页,显示第 51–100 题,共找到 448 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
SharedArrayBuffer 在 Worker 之间共享内存时,它的内存可见性如何保证? 本文先给出可直接复述的结论,再用最小代码说明SharedArrayBuffer 内存可见性 Atomics的工作方式、判断依据、项目边界和常见误区。
共享 Worker 如何向它所有的连接端口广播消息? 本文先给出可直接复述的结论,再用最小代码说明SharedWorker 向所有端口广播的工作方式、判断依据、项目边界和常见误区。
共享 Worker 如何在一个浏览器里被多个标签页或 iframe 连接? 本文先给出可直接复述的结论,再用最小代码说明SharedWorker 多标签页连接的工作方式、判断依据、项目边界和常见误区。
用 SharedWorker 时,客户端通过 port 的 postMessage 与 onmessage 通信,需要注意什么? 本文先给出可直接复述的结论,再用最小代码说明SharedWorker port 通信 start 注意事项的工作方式、判断依据、项目边界和常见误区。
用 Transferable 对象(如 ArrayBuffer)在 Worker 间传递数据,有什么性能和安全优势? 本文先给出可直接复述的结论,再用最小代码说明Transferable ArrayBuffer 零拷贝传递的工作方式、判断依据、项目边界和常见误区。
讲解浏览器中专用 Worker、共享 Worker、Service Worker 三类线程的职责、生命周期差异,给出选型条件、常见误用边界与判断方法。
BroadcastChannel 和 SharedWorker 在跨标签页通信上有什么不同? 本文先给出可直接复述的结论,再用最小代码说明BroadcastChannel 与 SharedWorker 跨标签通信对比的工作方式、判断依据、项目边界和常见误区。
两个消息在 Worker 和主线程之间发送时,它们的到达顺序能保证吗? 本文先给出可直接复述的结论,再用最小代码说明postMessage 消息到达顺序保证的工作方式、判断依据、项目边界和常见误区。
在 Worker 中使用 console.log 的输出会显示在浏览器开发者工具哪里? 本文先给出可直接复述的结论,再用最小代码说明Worker console.log 调试输出的工作方式、判断依据、项目边界和常见误区。
postMessage 传递不可克隆的对象(如函数、DOM 节点)时会怎样? 本文先给出可直接复述的结论,再用最小代码说明postMessage DataCloneError 不可克隆对象的工作方式、判断依据、项目边界和常见误区。
在一个 Worker 中的全局变量能否在多个消息任务之间共享? 本文先给出可直接复述的结论,再用最小代码说明Worker 全局变量跨消息共享的工作方式、判断依据、项目边界和常见误区。
Worker 之间互相等待消息时可能出现死锁吗?如何避免? 本文先给出可直接复述的结论,再用最小代码说明Worker 消息等待死锁与避免的工作方式、判断依据、项目边界和常见误区。
如何检测浏览器是否支持某个 Worker 特性(如 SharedWorker 或 SharedArrayBuffer)? 本文先给出可直接复述的结论,再用最小代码说明检测 Worker SharedArrayBuffer 特性支持的工作方式、判断依据、项目边界和常见误区。
Worker 内部抛出的异常如何传递到主线程并被捕获? 本文先给出可直接复述的结论,再用最小代码说明Worker 异常传递 onerror 捕获的工作方式、判断依据、项目边界和常见误区。
在 Worker 中抛出的 Promise 拒绝会不会触发全局错误事件? 本文先给出可直接复述的结论,再用最小代码说明Worker unhandledrejection 未处理拒绝的工作方式、判断依据、项目边界和常见误区。
Worker 里的事件循环和主线程的事件循环是完全独立的吗? 本文先给出可直接复述的结论,再用最小代码说明Worker 事件循环独立于主线程的工作方式、判断依据、项目边界和常见误区。
在 Worker 中通过 importScripts() 加载多个脚本时,执行的顺序和错误处理是怎样的? 本文先给出可直接复述的结论,再用最小代码说明importScripts 加载顺序与错误处理的工作方式、判断依据、项目边界和常见误区。
在一个 Worker 内部还能再创建新的 Worker 吗?嵌套 Worker 有什么限制? 本文先给出可直接复述的结论,再用最小代码说明嵌套 Worker 创建与限制的工作方式、判断依据、项目边界和常见误区。
解释 Web Worker 可访问与不可访问的 API 边界:独立全局作用域无 window 和 DOM,但保留网络、存储、定时器等能力,并给出工程判断方法。
有哪些常见的 Worker 内存泄漏场景,比如忘记 terminate 或停止端口? 本文先给出可直接复述的结论,再用最小代码说明Worker 内存泄漏 terminate 端口的工作方式、判断依据、项目边界和常见误区。
MessageChannel 和 MessagePort 与 Worker 的 postMessage 有什么关系? 本文先给出可直接复述的结论,再用最小代码说明MessageChannel MessagePort 与 Worker 通信的工作方式、判断依据、项目边界和常见误区。
在 Worker 中用 type='module' 加载 ES 模块脚本与经典脚本有何不同? 本文先给出可直接复述的结论,再用最小代码说明Worker type module ES 模块加载的工作方式、判断依据、项目边界和常见误区。
在 Worker 中可以使用 XMLHttpRequest 或 fetch 发起网络请求吗? 本文先给出可直接复述的结论,再用最小代码说明Worker 中 fetch XMLHttpRequest 网络请求的工作方式、判断依据、项目边界和常见误区。
在 Worker 中监听消息时,用 onmessage 属性和 addEventListener('message') 有何区别? 本文先给出可直接复述的结论,再用最小代码说明Worker onmessage 与 addEventListener 区别的工作方式、判断依据、项目边界和常见误区。
当需要并行执行多个计算任务时,使用一个 Worker 池(pool)比单个 Worker 有什么好处? 本文先给出可直接复述的结论,再用最小代码说明Worker 池并行任务优势的工作方式、判断依据、项目边界和常见误区。
在 Worker 与主线程之间如何处理请求-响应的模式(如消息 ID)?没有现成的 API,怎么实现? 本文先给出可直接复述的结论,再用最小代码说明Worker 请求响应模式 消息 ID 实现的工作方式、判断依据、项目边界和常见误区。
在主线程与 Worker 之间用 postMessage 传递复杂对象时,数据是如何拷贝的? 本文先给出可直接复述的结论,再用最小代码说明postMessage 结构化克隆 Worker的工作方式、判断依据、项目边界和常见误区。
Worker 能访问主页面所在的 cookie 吗? 本文先给出可直接复述的结论,再用最小代码说明Worker 访问 cookie的工作方式、判断依据、项目边界和常见误区。
加载 Worker 脚本文件时受哪些同源或 CORS 限制? 本文先给出可直接复述的结论,再用最小代码说明Worker 脚本同源与 CORS 限制的工作方式、判断依据、项目边界和常见误区。
普通 Web Worker 和 Service(服务)Worker 在被用户关闭标签页后的生命周期有何不同? 本文先给出可直接复述的结论,再用最小代码说明Worker 与 Service Worker 标签页关闭生命周期的工作方式、判断依据、项目边界和常见误区。
能否继承 Worker 类来创建自定义 Worker? 本文先给出可直接复述的结论,再用最小代码说明继承 Worker 类可行性的工作方式、判断依据、项目边界和常见误区。
调用 worker.terminate() 后,Worker 正在执行的任务和资源会被怎样处理? 本文先给出可直接复述的结论,再用最小代码说明worker.terminate 资源清理的工作方式、判断依据、项目边界和常见误区。
在 Worker 内部调用 self.close() 和主线程调用 worker.terminate() 有什么异同? 本文先给出可直接复述的结论,再用最小代码说明self.close 与 worker.terminate 区别的工作方式、判断依据、项目边界和常见误区。
Worker 中支持 setTimeout 和 setInterval 吗?它们与主线程有何异同? 本文先给出可直接复述的结论,再用最小代码说明Worker setTimeout setInterval 支持的工作方式、判断依据、项目边界和常见误区。
向量时钟如何检测两个并发写是冲突的? 本文先给出可直接复述的结论,再用最小代码说明向量时钟 并发冲突检测的工作方式、判断依据、项目边界和常见误区。
Kafka 生产者开启重试时如何避免同一分区内的消息乱序? 本文先给出可直接复述的结论,再用最小代码说明Kafka max.in.flight retries 消息乱序的工作方式、判断依据、项目边界和常见误区。
Dockerfile 中 CMD/ENTRYPOINT 的 shell 形式与 exec 形式对信号处理有何影响? 本文先给出可直接复述的结论,再用最小代码说明Dockerfile CMD ENTRYPOINT shell exec 信号的工作方式、判断依据、项目边界和常见误区。
Docker 的 -m/--memory 限制超出时容器进程会发生什么,如何验证? 本文先给出可直接复述的结论,再用最小代码说明Docker 内存限制 OOM killed cgroup的工作方式、判断依据、项目边界和常见误区。
Docker 的 --init 选项解决了 PID 1 不回收僵尸子进程的问题,其原理是什么? 本文先给出可直接复述的结论,再用最小代码说明Docker --init tini 僵尸进程 PID 1的工作方式、判断依据、项目边界和常见误区。
为什么 Docker 容器内的主进程 PID 是 1,这会带来什么问题? 本文先给出可直接复述的结论,再用最小代码说明Docker 容器 PID 1 进程 问题的工作方式、判断依据、项目边界和常见误区。
Docker 的 --pids-limit 如何防御 fork 炸弹,默认值是多少? 本文先给出可直接复述的结论,再用最小代码说明Docker pids-limit fork 炸弹 进程数限制的工作方式、判断依据、项目边界和常见误区。
在什么场景下会让 Docker 容器共享宿主机的 PID 或 IPC 命名空间,代价是什么? 本文先给出可直接复述的结论,再用最小代码说明Docker --pid host --ipc host 共享命名空间的工作方式、判断依据、项目边界和常见误区。
为什么用 shell 形式(exec sh -c)作为容器入口会导致主进程收不到 SIGTERM? 本文先给出可直接复述的结论,再用最小代码说明Docker ENTRYPOINT shell exec 信号 SIGTERM的工作方式、判断依据、项目边界和常见误区。
直接用 docker kill 或超时被 SIGKILL 对容器内应用有什么数据风险,如何设计规避? 本文先给出可直接复述的结论,再用最小代码说明docker kill SIGKILL 数据一致性 风险的工作方式、判断依据、项目边界和常见误区。
在容器入口脚本中如何保证把收到的 SIGTERM 正确转发给实际业务进程? 本文先给出可直接复述的结论,再用最小代码说明Docker 入口脚本 信号转发 trap wait的工作方式、判断依据、项目边界和常见误区。
为什么挂载宿主机目录进 Docker 容器后经常出现权限拒绝,如何正确处理 UID 映射? 本文先给出可直接复述的结论,再用最小代码说明Docker 挂载目录 权限 UID 属主 问题的工作方式、判断依据、项目边界和常见误区。
INP 把一次交互分成输入延迟、处理时间、呈现延迟,分别由什么导致? 本文先给出可直接复述的结论,再用最小代码说明INP 输入延迟 处理时间 呈现延迟的工作方式、判断依据、项目边界和常见误区。
什么是长任务,为什么 50 毫秒被当作划分界限? 本文先给出可直接复述的结论,再用最小代码说明长任务 50ms 主线程的工作方式、判断依据、项目边界和常见误区。
第三方脚本拖慢总阻塞时间,有哪些不影响功能的治理手段? 本文先给出可直接复述的结论,再用最小代码说明第三方脚本 TBT 延迟加载的工作方式、判断依据、项目边界和常见误区。
什么类型的计算应该移到 Web Worker,移过去为什么不能直接操作 DOM? 本文先给出可直接复述的结论,再用最小代码说明Web Worker 重计算 主线程的工作方式、判断依据、项目边界和常见误区。