欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript的并行運算實現代碼

 更新時間:2010年11月19日 21:22:06   作者:  
隨著多核cpu的普級,并發(fā)/并行多線程運算在主流的編程語言越來越流行,而在目前Javascript實現中還看不到在語言方面支持多線程,現在Javascript如此流行,真希望今后會在語言的層面有很大的變化.
下面我就個人觀點猜測一下,并行運算將會怎樣支持前端javascript的.

1 不太可能的進化

顯示線程的支持
如果在Javascript中支持顯示線程,那么可能是一種災難,目前的瀏覽器解析Javascript并執(zhí)行都是在瀏覽器的ui線程中工作的.
比如你可以在Javascript中運行while(true),這時瀏覽器界面就會停止響應.或者通過我之前的文章(編譯Javascript引擎,為JavaScript提供睡眠功能:http://www.cnblogs.com/ioriwellings/archive/2010/08/16/1800416.html)了解UI界面被阻塞的過程.
另外如果顯示支持線程必然也會支持線程間數據同步的同步原語功能,那就會出現這樣的問題:
在一個函數中獲取鎖,而在另一個函數中釋放鎖,但是如果另一個函數出錯怎么辦,或者另一個函數是從另一個文件中引用的,又碰巧那個文件由于某些原因(網絡問題,編碼問題)沒有加載進來,這時就會發(fā)生死鎖.
所以根據上面的一些原因,在JavaScript支持顯示線程還不太現實.

2 有可能的進化

隱式的并行支持
類似于openMP的宏指令,
下面代碼聲明并行運算FOR循環(huán):
復制代碼 代碼如下:

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

這種方式可以避免前面遇到的各種麻煩,并行的運算被托管于Javascript引擎內部,所以Javascript引擎有更多的空間處理優(yōu)化這些并行運算,比如在內部調用openMP,Intel TBB的并行功能.
所以我推測這種方式將會很可能被采用.

3 處理并行異常

由于Javascript代碼被隱式托管于并行線程處理,所以你可能不會馬上得到某個線程的異常狀態(tài),而是要等到全部的線程運行結束后才會知道某些代碼出現異常.

4 調試器的進化

會產生支持線程感知的Javascript調試器,能夠分析每個線程中的信息,并且能夠凍結/恢復某個線程的運行.
當然了,類似于firebug這樣的用Javascript腳本寫的調試器也將會有更大的提升,但是我想更理想的還是本地應用程序的調試器將會成為主流,比如:visual studio.

5 結語

  并行運算將會影響前臺Javascript的執(zhí)行性能,很多用Javascript寫的前臺效果,Javascript游戲的性能將得到改變與提升. 可是我會看到javascript的這種轉變嗎?

如果實在等不到,還是可以編譯現有的js引擎,并添加并行運算接口,然后自已發(fā)布瀏覽器,讓客戶下載,多核的功能還是可能利用到的.

但是還要兼容現在javascript規(guī)范,不然其它瀏覽器將不能識別你的代碼,所以就需要在js引擎內部對原有串行代碼分析,而且要準確,將可以轉換為并行的代碼進行優(yōu)化.我想這個任務還是很堅巨的.

相關文章

  • mpvue實現微信小程序快遞單號查詢代碼

    mpvue實現微信小程序快遞單號查詢代碼

    這篇文章主要介紹了mpvue實現微信小程序快遞單號查詢,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • webpack打包優(yōu)化的幾個方法總結

    webpack打包優(yōu)化的幾個方法總結

    這篇文章主要介紹了webpack打包優(yōu)化的幾個方法總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • javascript實現拼圖游戲

    javascript實現拼圖游戲

    這篇文章主要為大家詳細介紹了javascript實現拼圖游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 老生常談javascript的面向對象思想

    老生常談javascript的面向對象思想

    下面小編就為大家?guī)硪黄仙U刯avascript的面向對象思想。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Javascript防止圖片拉伸的自適應處理方法

    Javascript防止圖片拉伸的自適應處理方法

    這篇文章主要給大家介紹了關于利用Javascript防止圖片拉伸的自適應處理方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • JS實現鼠標移上去顯示圖片或微信二維碼

    JS實現鼠標移上去顯示圖片或微信二維碼

    本文給大家分享一段使用的js代碼實現鼠標移入顯示圖片或微信二維碼樣式,代碼簡單易懂,非常不錯,需要的朋友參考下吧
    2016-12-12
  • javascript函數報Uncaught?ReferenceError:?XXX?is?not?defined

    javascript函數報Uncaught?ReferenceError:?XXX?is?not?define

    本文主要介紹了javascript函數報Uncaught?ReferenceError:?XXX?is?not?defined,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 基于js實現抽紅包并分配代碼實例

    基于js實現抽紅包并分配代碼實例

    這篇文章主要介紹了基于js實現抽紅包并分配代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • bootstrap switch開關組件使用方法詳解

    bootstrap switch開關組件使用方法詳解

    這篇文章主要為大家詳細介紹了bootstrap switch開關組件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 淺析JavaScript回調函數應用

    淺析JavaScript回調函數應用

    這篇文章主要為大家詳細介紹了JavaScript回調函數應用,感興趣的朋友可以參考一下
    2016-05-05

最新評論