js的协程模拟线程问题
发布于 7 年前 作者 zswnew 3639 次浏览 来自 问答

js是单线程的,而网上的Concurrent.Thread.js可以模拟线程。

 我不知道concurrent.thread.js的原理是什么,但觉得使用yield可以达到同样的效果。

 那么能不能用yield模拟出线程呢,即多个函数同时运行,该如何把普通函数转换为生成器再用next()方法来回切换呢

来自酷炫的 CNodeMD

1 回复

这东东以前还真没注意过,扫了一眼,在 Concurrent.Thread sourceforge 项目主页上有作者的论文,详细解释了为什么要折腾这个,以及是怎么实现的。基本思想就是把 UI 线程当 cpu,搞分时复用。由于 JavaScript 没有 continuation 的概念,所以用它创建线程时会对代码做手脚的,主要是把语句流改成函数链,这样就有办法做调度了。

回到顶部