我认为javascript在每个浏览器中都限于一个线程。 Parallel.js
说:
Parallel.js通过为您提供使用Web Worker进行多核处理的高级访问来解决该问题。
可以找到未缩小的代码here。我只是想知道parallel.js的工作原理,有人可以解释吗?
答案 0 :(得分:3)
因此,尽管javascript具有单个线程来运行堆栈的主要功能集,但它也具有Workers https://developer.mozilla.org/en-US/docs/Web/API/Worker,但浏览器允许这些对象运行诸如复杂数学运算之类的后台任务。
因此,浏览器将利用操作系统来管理此任务,以为不同任务创建多个线程。
,但这不允许在两个上下文中重用相同的变量,除非它们与推荐的API一起使用(作为限制)。
这就是并行js所利用的。
检查代码并搜索worker
,我相信它会为您提供更多说明。
总而言之,Workers是一个API,用于运行通过方法进行交互的多个进程,而不是通常的js代码链,并且您的代码必须非常明确地说明要运行的内容以及具有什么样的变量和种类,就像您在哪里发送承诺的承诺一样。任务,并且您等待任务在将来的某个时间返回结果.then()
,您执行其他操作