各位观众老爷,大家好!我是你们的老朋友,今天咱们来聊聊 JavaScript 里一个挺有意思的东西—— SharedArrayBuffer。这玩意儿,说白了,就是让 JavaScript 在多线程环境下也能玩转共享内存的利器。 一、啥是 SharedArrayBuffer?(别被名字吓到,其实很简单) 话说,咱们平时写的 JavaScript 代码,都是在单线程里跑的。啥叫单线程?就是说,同一时间只能干一件事儿。就好比你一边吃饭一边刷手机,虽然看起来是同时进行的,但实际上你的大脑在不停地切换注意力,一会儿关注食物,一会儿关注手机。 但是,在 Web 应用里,有些事情特别耗时,比如处理复杂的图像、进行大量的计算等等。如果这些事情都放在主线程里做,就会导致页面卡顿,用户体验极差。 这时候,Web Worker 就派上用场了。Web Worker 允许我们在浏览器里创建独立的线程,让这些线程去执行耗时的任务,而不会阻塞主线程。 但是,问题来了!Web Worker 和主线程之间是隔离的,它们之间不能直接共享数据。之前,它们只能通过 postMessage 来传递数据,这种方式效率比较低,就像 …
继续阅读“JavaScript内核与高级编程之:`JavaScript`的`SharedArrayBuffer`:其在 `Web Worker` 之间共享内存的底层实现。”