js単一スレッド、イベントループ、マイクロタスクマクロタスク


マクロタスクとマイクロタスクとは
マクロタスクには、settimeout settInterval Ajax DOMイベントマイクロタスクが含まれます.Promise async/awaitマイクロタスクは、マクロタスクの実行時間よりも早いです.
非同期および単一スレッド
非同期と単一スレッドは相補的であり、jsは単一スレッドスクリプト言語であるため、非同期で支援する必要がある.
非同期と同期の違い:
フロントエンドで非同期シーンを使用:
タイミングタスク:settimeout,setInvervalネットワークリクエスト:ajaxリクエスト,動的ロード
イベントバインド
タスクキューとevent loop(イベントループ)1)すべての同期タスクは、メインスレッド上で実行され、行は実行スタックになります.
2)メインスレッドに加えて、非同期タスクの実行結果があれば、タスクキューにタイムスタンプを1つ植え込むタスクキューが存在する.
3)メインスレッドがすべてのタスクを完了すると(実行スタックが空になる)、タスクキューが読み出され、まずマイクロタスクキューがマクロタスクキューを実行していることを実行します.
プライマリ・スレッドが空になると、タスク・キューが読み出されます.これがjsの実行メカニズムであり、event loop(イベント・ループ)とも呼ばれます.
実行順序
1.メインスレッド上のマクロタスク、マイクロタスク実行順序:メインスレッド>>メインスレッド上に作成されたマイクロタスク>>メインスレッド上に作成されたマクロタスクマクロタスクに含まれるマイクロタスク実行順序:メインスレッド>>メインスレッド上のマクロタスクキュー1>>マクロタスクキュー1に作成されたマイクロタスク