Javascript的并行运算实现代码


Posted in Javascript onNovember 19, 2010

下面我就个人观点猜测一下,并行运算将会怎样支持前端javascript的.

1 不太可能的进化

显示线程的支持
如果在Javascript中支持显示线程,那么可能是一种灾难,目前的浏览器解析Javascript并执行都是在浏览器的ui线程中工作的.
比如你可以在Javascript中运行while(true),这时浏览器界面就会停止响应.或者通过我之前的文章(编译Javascript引擎,为JavaScript提供睡眠功能:http://www.cnblogs.com/ioriwellings/archive/2010/08/16/1800416.html)了解UI界面被阻塞的过程.
另外如果显示支持线程必然也会支持线程间数据同步的同步原语功能,那就会出现这样的问题:
在一个函数中获取锁,而在另一个函数中释放锁,但是如果另一个函数出错怎么办,或者另一个函数是从另一个文件中引用的,又碰巧那个文件由于某些原因(网络问题,编码问题)没有加载进来,这时就会发生死锁.
所以根据上面的一些原因,在JavaScript支持显示线程还不太现实.

2 有可能的进化

隐式的并行支持
类似于openMP的宏指令,
下面代码声明并行运算FOR循环:

#pragma omp parallel for 
for (i = 0; i < N; i++) 
a[i] = 2 * i;

这种方式可以避免前面遇到的各种麻烦,并行的运算被托管于Javascript引擎内部,所以Javascript引擎有更多的空间处理优化这些并行运算,比如在内部调用openMP,Intel TBB的并行功能.
所以我推测这种方式将会很可能被采用.

3 处理并行异常

由于Javascript代码被隐式托管于并行线程处理,所以你可能不会马上得到某个线程的异常状态,而是要等到全部的线程运行结束后才会知道某些代码出现异常.

4 调试器的进化

会产生支持线程感知的Javascript调试器,能够分析每个线程中的信息,并且能够冻结/恢复某个线程的运行.
当然了,类似于firebug这样的用Javascript脚本写的调试器也将会有更大的提升,但是我想更理想的还是本地应用程序的调试器将会成为主流,比如:visual studio.

5 结语

并行运算将会影响前台Javascript的执行性能,很多用Javascript写的前台效果,Javascript游戏的性能将得到改变与提升. 可是我会看到javascript的这种转变吗?

如果实在等不到,还是可以编译现有的js引擎,并添加并行运算接口,然后自已发布浏览器,让客户下载,多核的功能还是可能利用到的.

但是还要兼容现在javascript规范,不然其它浏览器将不能识别你的代码,所以就需要在js引擎内部对原有串行代码分析,而且要准确,将可以转换为并行的代码进行优化.我想这个任务还是很坚巨的.

Javascript 相关文章推荐
使用jscript实现二进制读写脚本代码
Jun 09 Javascript
基于jQuery实现的水平和垂直居中的div窗口
Aug 08 Javascript
js 回车提交表单两种实现方法
Dec 31 Javascript
js触发asp.net的Button的Onclick事件应用
Feb 02 Javascript
关于jquery input textare 事件绑定及用法学习
Apr 03 Javascript
JS实现Select的option上下移动的方法
Mar 01 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
Jun 20 Javascript
AngularJS教程之简单应用程序示例
Aug 16 Javascript
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
通过函数作用域和块级作用域看javascript的作用域链
Aug 05 Javascript
解决vue移动端适配问题
Dec 12 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
js里的prototype使用示例
Nov 19 #Javascript
Google 静态地图API实现代码
Nov 19 #Javascript
javascript 窗口加载蒙板 内嵌网页内容
Nov 19 #Javascript
JS运行耗时操作的延时显示方法
Nov 19 #Javascript
function foo的原型与prototype属性解惑
Nov 19 #Javascript
高亮显示web页表格行的javascript代码
Nov 19 #Javascript
javascript tips提示框组件实现代码
Nov 19 #Javascript
You might like
yii操作cookie实例简介
2014/07/09 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python实现感知机(PLA)算法
2017/12/20 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
python压包的概念及实例详解
2021/02/17 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
聚美优品广告词改编
2014/03/14 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
介绍信的写法
2015/01/31 职场文书
2015年体育部工作总结
2015/04/02 职场文书
投诉书范文
2015/07/02 职场文书