终止Web Worker时,是否会同时终止其生成的子Worker?
Web Worker终止行为的潜在问题
根据HTML规范的表述,终止父Web Worker时并不会自动终止它创建的子Web Worker。这确实是一个相当严重的问题——这些孤立的子Worker会持续运行,无限消耗计算资源,而主程序因为失去了对它们的引用,无法再对其进行任何控制操作。
为了避免这种资源泄漏的情况,通常可以采用以下两种方案:
- 在父Worker调用
terminate()之前,主动向所有子Worker发送自定义终止信号,让子Worker自行执行close()方法结束运行 - 在子Worker中添加监听逻辑,检测与父Worker的连接状态,一旦连接断开就自动终止自身进程
内容的提问来源于stack exchange,提问作者Isaac King
相关产品推荐
相关产品推荐

