同步模式(Synchronous)
概念:
程式碼中的任務依次排隊執行,執行順序與程式碼的編寫順序是完全一致的。在單執行緒下大多數任務都會以同步模式去執行
執行講解:
例:
console.log('begin')
function A(){
console.log('A task')
}
function B(){
console.log('B task')
A()
}
B()
cosnole.log('end')
1、js執行引擎會把整體的程式碼全部載入進來
2、然後在呼叫棧(Call stack)當中壓入一個匿名(anonymous)的呼叫,這個匿名的呼叫可以理解為把全部的程式碼放入到一個匿名的函式當中去執行,然後去逐行執行
3、呼叫棧中依次壓入上述程式碼去執行,呼叫棧中:
(anonymous) 逐行執行
console.log(‘begin’) 執行 彈出
B() 執行
console.log(‘B task’) 執行 彈出
A()執行
console.log(‘A task’) 執行 彈出
A()彈出
B()彈出
cosnole.log(‘end’) 執行 彈出
(anonymous) 彈出
呼叫棧的理解
呼叫棧只是一個更專業的說法,通俗的解釋是,js在執行引擎中維護了一個正在執行的工作表,當工作表中的所有任務被清空完後,這一輪的工作就結束了
問題:如果某一任務執行時間過長,後面的任務就要延遲(阻塞),一直等待,這種阻塞對使用者來說,介面就會卡頓或者卡死,這就必須要非同步任務來解決程式中無法避免的耗時操作,例如ajax,node.js中的大檔案讀寫等避免程式碼被卡死
相關文章
- Silverlight同步(Synchronous)呼叫WCF服務(轉)
- 效能優化-FSL(Force Synchronous Layout)強制同步佈局優化
- Simple FSM 3(synchronous reset)
- Simple FSM1(synchronous reset)
- Simple FSM2(synchronous reset)
- 通訊機制 synchronous communication
- 非同步模式(Asynchronous)非同步模式
- 介面卡模式:非同步轉化為同步。模式非同步
- Promise非同步控制流模式Promise非同步模式
- Python中非同步模式Python非同步模式
- PostgreSQL DBA(161) - pgAdmin(synchronous_commit)SQLMIT
- Load a script file in sencha, supports both asynchronous and synchronous approachesAPP
- CRS-2409:The clock on host is not synchronous with the mean cluster time
- oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(4)Oracle模式
- oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(3)Oracle模式
- oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(2)Oracle模式
- oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(1)Oracle模式
- 【譯】async 的非同步操作模式非同步模式
- 非同步程式碼模式轉換(node)非同步模式
- 初探Thrift客戶端非同步模式客戶端非同步模式
- Remoting之非同步操作模式REM非同步模式
- 原始碼解析Synchronous Queue 這種特立獨行的佇列原始碼佇列
- rocketMq之雙主雙從同步模式搭建MQ模式
- JavaScript非同步程式設計助手:Promise模式JavaScript非同步程式設計Promise模式
- JavaScript非同步程式設計的Promise模式JavaScript非同步程式設計Promise模式
- 譯/非同步程式碼模式轉換(node)非同步模式
- 深入理解C#中的非同步(一)——APM模式EAP模式C#非同步模式
- C++屌屌的觀察者模式-同步回撥和非同步回撥C++模式非同步
- 非同步程式設計:基於事件的非同步程式設計模式(EAP)非同步程式設計事件設計模式
- 非同步程式設計模式BeginInvoke和EndInvoke方法非同步程式設計設計模式
- CXF入門教程(5) -- webService非同步呼叫模式Web非同步模式
- 關於應用整合:同步與非同步通訊模式之間的比較非同步模式
- 9164288 misaligned log IOs which required falling back to synchronous IOiOSUI
- 說一說併發設計模式—Future(非同步)設計模式非同步
- 用兩個鎖解決單例模式的同步單例模式
- IO模式和IO多路複用(阻塞IO、非阻塞IO、同步IO、非同步IO等概念)模式非同步
- React Fiber原始碼分析 第二篇(同步模式)React原始碼模式
- 《Node.js設計模式》高階非同步準則Node.js設計模式非同步