各位观众老爷,大家好!欢迎来到今天的并发编程小剧场。今天我们不讲高深的理论,只聊聊如何在 JavaScript 的 Worker 之间玩转 "等待/通知" 模式,也就是 Atomics.wait 和 Atomics.notify 这两位哥们儿。 咱们先来个“灵魂拷问”:你有没有遇到过这样的场景? Worker A: “哥们儿,数据准备好了没?好了吱一声!” Worker B: “还没呢,等等哈…” Worker A: (疯狂轮询) “好了没?好了没?好了没?” (CPU: 我裂开了!) 这种场景是不是很熟悉?Worker A 像个催债的一样,不停地问 Worker B 数据是否准备好。这种疯狂轮询 (busy-waiting) 会浪费大量的 CPU 资源,而且 Worker A 在没收到通知之前啥也干不了,简直是“躺平式等待”。 Atomics.wait 和 Atomics.notify 的出现就是为了解决这个问题。它们提供了一种高效的等待/通知机制,让 Worker 可以安心等待,直到收到通知再醒过来干活。 啥是 SharedArrayBuffer? …
继续阅读“JS `Atomics.wait` 与 `Atomics.notify`:等待/通知模式在 Worker 间的同步”