首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >JS如何实现多线程?

JS如何实现多线程?

作者头像
dys
发布2018-04-03 15:23:19
发布2018-04-03 15:23:19
5.1K0
举报
文章被收录于专栏:性能与架构性能与架构

单线程的问题

javascript是单线程执行的,在处理运算过程中,浏览器不能执行其它javascript脚本,UI渲染线程也会被挂起,从而导致浏览器进入僵死状态 例如执行经典的 Fibonacci(斐波拉契) 计算,这个递归运算比较耗时,我们就以此为例 代码

解决方法

如果把fibonacci计算放到另一个线程中执行,当前线程就可以继续执行,这就需要多线程的能力 Web Worker 是 HTML5 提供的一个javascript多线程解决方案,可以将一些大计算量的代码交由web Worker运行而不冻结用户界面 web worker有两个好处:快速、不阻塞浏览器响应 对于上面的示例,可以创建一个worker线程来执行fibonacci运算 代码

worker.js

结果 开始计算1 worker执行的时候继续执行 结果1用时:779 开启worker线程后,就不再阻塞当前线程了,并且可以开启多个worker线程,web worker很好的解决JS单线程模型的不足

使用场景

web worker不能操作DOM,适合运算型操作 例如: (1)长文本格式化 (2)语法高亮 (3)图片处理 (4)图片合成 (5)大数组处理

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档