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

西门大官人
リリース: 2018-07-13 14:41:31
オリジナル
2010 人が閲覧しました

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

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

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

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

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

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

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

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

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


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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!