Javascript的并行运算

  前言

  随着多核cpu的普级,并发/并行多线程运算在主流的编程语言越来越流行,而在目前Javascript实现中还看不到在语言方面支持多线程,现在Javascript如此流行,真希望今后会在语言的层面有很大的变化。

  下面我就个人观点猜测一下,并行运算将会怎样支持前端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;

it知识库Javascript的并行运算,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。