changed 6 years ago
Linked with GitHub

Event loop

tags: javascriptadvancedbroswer

簡介

當在瀏覽器運行 Javascript 時,瀏覽器一般是採用 single thread 的機制在運行,這個機制意思是一次只會跑一個動作或任務。

因此,需要一項機制來運行非同步的任務,這個機制其中一個項目叫做 Event loop。

而其中又包括 call stack 和 callback queue 的概念。

延伸閱讀

Process & Thread

Process 是程序,一個程式在執行的時候,可以有很多個 Process 多工運作,像是 windows 打開工作管理員,會看到許多的處理程序,就好像每個程序都是一個小程式在執行。Chrome 瀏覽器每個分頁都是個程序,因此當今天一個分頁當掉並不會影響其它分頁運作的情況。

Thread 是執行緒,一個 Process 可以有很多個 Thread 在作業。今天如果一個程式分別要提供一項功能給 A 和 B 的使用者的話,最好應該開兩個 Thread 各別處理 A 與 B 的執行,而不是兩個 Process,因為每開一個 Process 就會佔用伺服器的處理空間,開越多只會負荷越大,因此最好在執行供應給不同使用者的時候,是另外開 Thread,而不是 Process。

「一個程式可以有很多個 Process;一個 Process 可以有多個 Thread。」

延伸閱讀

Select a repo