非同步:現在與將來
分塊的程式
可以把JavaScript 程式寫在單獨的js 檔案中,這個程式是由多個區塊組成的,這些區塊
中只有一個是現在執行,其餘在撿來執行,最常見的塊單位是函數。
例如:
function now() { return 21; } function later() { answer = answer * 2; console.log("Meaning of life:", answer); } var answer = now(); setTimeout (later,1000); // Meaning of life: 42 现在: function now() { return 21; } function later() {...} setTimeout(later,1000); setTimeout(later,1000); 将来: answer = answer * 2; console.log("Meaning of life:", answer);
異步控制台
## 異步控制台
## 並行線程
異步是現在和將來的時間間隙,而並行是關於能同時發生的事情。
並行計算最常見的工具就是進程和線程,並行和線程獨立運行,並可能同時運行,
處理器,甚至不同的電腦上,但多個進程能夠共享單一進程的記憶體。
並發
兩個或多個# 兩個或多個
# 兩個或多個「進程」」 #同時執行就出現了並發,不管組成他們的單一運算是否並行執行
# 可以把並發看作
「進程」##」」及的並行,與計算級的並行相對。 非交互
兩個或多個“進程
”在同一個程式內並發地交替執行它們的步驟/事件時,如果這些任務彼此不相關,就不一定需要互動。 交互
更常見的情況是,並發的
「流程」」
#」#」
#」#」#」#」
需要互相交流,透過DOM 間互動。
協作
取到一個長期運行的進程,並將其分割成多個步驟或多批人,使其他並發“進程”
有機會將自己的運算插入事件循環佇列中交替執行。 任務
掛在事件循環隊列的每個
tick之後的一個隊列,在事件循環的每一個隊列,在事件循環隊列的每個tick 之後的一個隊列,在事件循環的每一個隊列個tick
中,可能
### 出現異步動作不會導致一個完整的新事件加入新事件中,而會在當前的###tick ###的######任務佇列末尾新增一個項目。 ############ 語句順序############ 程式碼中語句的順序和###JavaScript ###引擎語句的順序並不一定執行語句的順序並不一定一致。 ######### JavaScript ###引擎在編譯這段程式碼之後,可能會發現透過重新排程######這些語句的順序有可能提過速度。 ############ 回呼######### continuation(###延續######)########### ##)########### 」順序的大腦順序的大腦順序的大腦順序的大腦順序的大腦順序的大腦順序的大腦順序######執行與計劃
執行與計劃
嵌套回呼與鍊式回調
##### 嵌套回呼與鏈式回調##############以上是javaScript的冷門知識介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!