ホームページ >ウェブフロントエンド >jsチュートリアル >Javascriptの非同期タスク原理(画像とテキスト)

Javascriptの非同期タスク原理(画像とテキスト)

西门大官人
西门大官人オリジナル
2018-07-13 14:41:312058ブラウズ

ご存知のとおり、JavaScript コードは 1 つのスレッド、つまり単一のスレッドでのみ実行できます。コードが存在すると、ブラウザが一時停止される可能性があります。

では、なぜ JavaScript はシングルスレッド モデルとして設計されているのでしょうか?

JavaScript の設計者は、JavaScript がマルチスレッドになるように設計されている場合、プログラムの複雑さが大幅に増加すると考えています。たとえば、2 つのスレッドがある場合、1 つのスレッドがボタンの作成を担当し、他のスレッドがボタンを削除します。スレッドの実行順序が不確実であるため、このボタンがページに表示される場合と表示されない場合があり、開発者に多大な迷惑を及ぼします。したがって、わかりやすくするために、JavaScript は最初からシングルスレッド モデルとして設計されており、これが JavaScript の中心的な機能です。

JavaScriptのシングルスレッド制限を解決するために、JavaScriptプログラムのタスクは、同期タスクと非同期タスクに分割されます

Javascriptの非同期タスク原理(画像とテキスト)

同期タスク: は、実行のためにキューに入れられ、実行されないタスクを指しますタスクがメインスレッド上の JavaScript エンジンによって一時停止されると、次のタスクは前のタスクが完了した後にのみ実行を開始します。

非同期タスク: は、JavaScript エンジンによってタスク キューに配置されるいくつかの時間のかかるタスク (IO リクエストなど) を指します。これらのタスクはメイン スレッド上にないため、メインにスケジュールされません。以前のスレッドは実行されません (ajax のコールバック関数など)。

では、タスクキューはどこから来るのでしょうか?

実際、JavaScript が実行されると、メイン スレッドに加えて、JavaScript エンジンはいくつかのタスク キューも作成します。これには、現在のプログラムが処理する必要がある非同期タスク (ajax 非同期コールバック関数、関数など) が含まれます。 setTimeout など。メインスレッド上のすべてのタスクが実行されると、エンジンは各タスクキューをチェックして、実行条件を満たすタスクがあるかどうかを確認し、存在する場合は、そのタスクがメインスレッドで実行されるようにスケジュールされます。


以上がJavascriptの非同期タスク原理(画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。