JavaScript如何實現多執行緒?
我們都知道JS是一種單執行緒語言,即使是一些非同步的事件也是在JS的主執行緒上執行的。像setTimeout、ajax的非同步請求,或者是dom元素的一些事件,都是在JS主執行緒執行的,這些操作並沒有在瀏覽器中開闢新的執行緒去執行,而是當這些非同步操作被操作時或者是被觸發時才進入事件佇列,然後在JS主執行緒中開始執行。
首先說一下瀏覽器的執行緒,瀏覽器中主要的執行緒包括,UI渲染執行緒,JS主執行緒,GUI事件觸發執行緒,http請求執行緒。
JS作為指令碼語言,它的主要用途是與使用者互動,以及操作DOM。這決定了它只能是單執行緒,否則會帶來很複雜的同步問題。
但是單執行緒的語言,有一個很致命的確定。如果說一個指令碼語言在執行時,其中某一塊的功能在執行時耗費了大量的時間,那麼就會造成阻塞。這樣的專案,使用者體驗是非常差的,所以這種現象在專案的開發過程中是不允許存在的。
其實JS為我們提供了一個Worker的類,它的作用就是為了解決這種阻塞的現象。當我們使用這個類的時候,它就會向瀏覽器申請一個新的執行緒。這個執行緒就用來單獨執行一個js檔案。
var worker = new Worker(js檔案路徑);
那麼這個語句就會申請一個執行緒用來執行這個js檔案。這樣也就實現了js的多執行緒。
IT面試題
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70023145/viewspace-2930098/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何實現多執行緒執行緒
- 多執行緒原理實現執行緒
- 多執行緒實現多工二執行緒
- 多執行緒實現多工一執行緒
- Java多執行緒實現方式Java執行緒
- 多執行緒具體實現執行緒
- Java多執行緒的實現Java執行緒
- Runnable介面實現多執行緒執行緒
- python多執行緒實現Python執行緒
- NSThread實現多執行緒thread執行緒
- NSThread多執行緒實現thread執行緒
- 如何使用queue模組實現多執行緒爬蟲執行緒爬蟲
- 報警機制如何用多執行緒實現執行緒
- 多執行緒-匿名內部類的方式實現多執行緒程式執行緒
- LINUX 如何實現多執行緒進行cp複製Linux執行緒
- 多執行緒爬蟲實現(上)執行緒爬蟲
- java實現多執行緒的方法Java執行緒
- 面試-實現多執行緒的方式面試執行緒
- Java多執行緒的實現方法Java執行緒
- 多執行緒-多執行緒方式1的程式碼實現執行緒
- JavaScript多執行緒程式設計JavaScript執行緒程式設計
- 多執行緒併發篇——如何停止執行緒執行緒
- 用多執行緒,實現併發,TCP執行緒TCP
- 多執行緒伺服器的實現執行緒伺服器
- 多執行緒基礎-基礎實現執行緒
- Java多執行緒【三種實現方法】Java執行緒
- 純Mutex實現多執行緒交替列印Mutex執行緒
- 用Pthread實現多執行緒操作thread執行緒
- Java多執行緒-基礎及實現Java執行緒
- Swift實現多執行緒map函式Swift執行緒函式
- JAVA多執行緒下載的實現Java執行緒
- 實現FTP多執行緒下載 (轉)FTP執行緒
- 在Vb下實現多執行緒 (轉)執行緒
- 自動化測試應該如何實現多執行緒?執行緒
- python多執行緒中訊息佇列如何實現?Python執行緒佇列
- 實驗--多執行緒執行緒
- Java 執行緒池中的執行緒複用是如何實現的?Java執行緒
- 5招教你實現多執行緒場景下的執行緒安全!執行緒