コンセプト
は、通常、一度に1つのことしか起こらない場合に順番にプログラミングを行う. ある関数が別の関数の影響を受ける場合、その関数は別の関数の終了を待って値を計算する必要があります. プレイヤーはパニックになります.ユーザーから見れば、別の関数が終わるのを待つプロセスは、プログラム全体が停止したように見えるからです.Webアプリケーションがブラウザで特定のコードを実行して制御権をブラウザに返さないため、ブラウザが静止しているように見える現象をブロック(blocking)と呼ぶ. コンピュータは、コンピュータのパフォーマンスを効率的に使用する方法ではなく、複数のプロセスを経験している現在の時代です.したがって、
は、プロセスの終了を待つ間に他の操作を実行するために非同期プログラミングを必要とする.🤔 なぜブロックが現れたのですか?
デフォルトではJavaScriptはシングルスレッドです.
Threadは何だ?
Threadは基本的に単一のプロセスであり、プログラムがタスクを完了するのに使用できます.スレッドごとに1回に1つのタスクしか実行できません.
TaskA --> TaskB --> TaskC
スレッドでは、各タスクは順番に行われ、次のタスクを開始するには、前のタスクを完了する必要があります. Thread 1: Task A --> Task B
Thread 2: Task C --> Task D
現在、ほとんどのコンピュータに複数のCPUコアがあるため、複数のタスクを一度に実行できます. マルチスレッドをサポートするプログラミング言語では、マルチコアコンピュータ上のCPUを使用して複数のタスクを同時に処理できます.でもjavascriptはsinglethreadでしょ?🤗
したがって,コンピュータにCPUが複数あっても,1つのスレッド(プライマリスレッドと呼ぶ)でしかタスクを実行できない.
JavaScriptでは、これらの問題を解決するためのさまざまなツールが導入されています. Web Workersは、複数のJavaScriptブロックを同時に実行するために、Workerという独立したスレッドに送信することができる. であるため、手動処理時間の長い処理は、ブロックの問題を解決する可能性がある.Web Workerは、Webアプリケーションのメイン実行スレッドから分離された独立したバックグラウンドスレッド上でスクリプト演算を実行できる技術です.
非同期プログラミングは主にいつ使用されますか?
ユーザイベント処理ユーザーのアクティビティがいつあるか事前に知ることはできませんよね? したがって、これらのクライアントイベントの管理関数のパラメータは、イベントが発生したときに呼び出された関数をコールバック関数に渡す! ネットワーク応答処理クライアントがサーバ側に要求を送信すると、いつ応答が受信されるか分からない.従って、これらのサーバ側の応答処理にも非同期処理が必要である.
ファイルを読み書きするファイルシステム操作故意遅延例)アラーム注意:
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Asynchronous/Concepts
Reference
この問題について(ひどうきプログラミング), 我々は、より多くの情報をここで見つけました
https://velog.io/@franchesca/비동기적-프로그래밍
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol