深入理解JavaScript中的并行处理的介绍.doc
1、深入理解JavaScript中的并行处理的介绍有关深入理解JavaScript中的并行处理的介绍前言为什么说多线程如此重要?这是个值得思考的问题。一直以来,派生线程以一种优雅的方式实现了对同一个进程中任务的划分。操作系统负责分配每个线程的时间片,具有高优先级并且任务繁重的线程将分配到更多的时间片,而低优先级空闲的线程只能分到较少的时间片。虽然多线程如此重要,但JavaScript却并没有多线程的能力。幸运的是,随着 Web Worker 的普及,我们终于可以在后台线程来处理资源密集型的计算了。而不好的方面是,目前制定的标准只适用于当前的生态系统,这有时候就比较尴尬了。如果你了解其他从一开始就支
2、持多线程的语言的话,你可能会发现很多的限制,远非仅仅是实例化一个新线程,然后你操控这个实例就能实现多线程。这篇文章主要来介绍 Web Worker,包括什么时候使用,该怎么使用,它有什么奇怪的特性,会介绍在 Webpack 中如何使用它,还有可能遇到的一些坑。一、Web WorkersWeb Worker 可能是在 JavaScript 中唯一可以真正实现多线程的方法了。我们需要按照下面的方式创建 worker :const worker = newWorker(worker.js);上面就定义了一个 Worker 实例,然后你可以通过 postMessage 与 worker 通信,就像和
3、iFrame 通信一样,只不过不存在跨域的问题,不需要验证跨域。worker.postMessage(num);在 worker 代码中,你需要监听这些事件:onmessage = (e) = / e.data will contain the value passed;这种方式是双向的,所以你也可以从 worker 中 postMessage 给我们的主程序。在 worker 代码中:postMessage(result);在主程序中:worker.onmessage = (e) = 这就是 worker 最基本的用法。异常处理在你的 worker 代码中,有很多种方式来处理异常,比如你可以 catch 之后通过 postMessage 传递,这样可能需要多些一些代码,但是确实最有效也最安
《深入理解JavaScript中的并行处理的介绍.doc》由会员分享,可在线阅读,更多相关《深入理解JavaScript中的并行处理的介绍.doc(9页范文模板文档)》请在优智文库上查找。