我瞭解現代瀏覽器的JS engnines(如V8,SpiderMonkey的,脈輪,等)在內部使用線程池,即使只有一個線程(運行事件循環)暴露於一個JS程序員。爲什麼現代瀏覽器JS引擎是多線程的?
顯然,(很少使用)的Web工人需要多線程(或多個進程) - 否則他們無法利用多個CPU內核。我的問題是,來自Web Workers的除之外,實現具有多個線程的JS引擎有什麼好處?
爲什麼不能JS引擎始終保持單線程通過內部依靠相同的事件循環的JS程序員使用,使用非阻塞OS調用時,它需要做任何IO?
澄清:JS引擎使用即使用戶打開只有一個標籤只是一個窗口一個線程池。
編輯:這是回答here
瀏覽器是在同一時間觀看多個網頁? –
@EdHeal我編輯了我的問題來澄清。 – max
@max即使只有一個選項卡,瀏覽器UI也可能在另一個進程中使用JS。 – Oriol