ホームページ  >  記事  >  ウェブフロントエンド  >  スレッドとイベントループのJavaScript実装の詳細な説明

スレッドとイベントループのJavaScript実装の詳細な説明

韦小宝
韦小宝オリジナル
2018-03-14 16:08:191247ブラウズ

この記事では、javascriptのスレッドとイベント ループの実装について説明します。JavaScript のスレッドとイベント ループの実装について知らない場合、または JavaScript のスレッドとイベント ループの実装に興味がある場合は、この記事を一緒に見てみましょう。 . さて、ナンセンスはこれくらいにして、本題に入りましょう

1. JavaScript はなぜシングルスレッドと言われているのでしょうか?

ブラウザのレンダリングプロセスに関与するいくつかのスレッドは次のとおりです: jsコードの実行を担当するJavaScript実行スレッド、UI表示を担当するUIスレッド、JavaScriptイベントループスレッド、管理

JavaScriptイベントJavaScript 実行スレッドと UI スレッドは相互に排他的です。JavaScript がマルチスレッドの場合、ボタンを赤と黄色に変えるなど、複数の JavaScript 実行スレッドが同じ

を実行すると、UI スレッドが混乱します。このとき、誰の言うことを聞くべきですか? JavaScript でこの状況を回避するには、これらの

スレッドを個別に実行する必要があるため、JavaScript はシングルスレッドになり、言語の核となる特性は変わりません。将来。

2. JavaScript タスク キュー 構造とイベント ループ

シングルスレッドとは、すべてのタスクがキューに入れられる必要があり、次のタスクが実行される前に前のタスクが終了することを意味します。前のタスクに時間がかかると、次のタスクは

待たなければなりません。

JavaScript の実行タスクは、以下に示すように、キュー データ構造の形式で実行されます。 1. 同期タスク:

forループ

、合計、js代入、js操作など

2.非同期タスク:domイベント、bom API処理ajax

いわゆる「コールバック関数」 " (callback) 、これはメインスレッドによってハングアップされるコードです。非同期タスクはコールバック関数を指定する必要があります。メインスレッドが非同期タスクの実行を開始すると、

が対応するコールバック関数を実行します。 ループメカニズム:

JavaScriptメインスレッドは同期タスクを直接実行し、非同期タスクは最初にそれらの一部を実行し、次に終了メインスレッドの実行を待ってから、メインスレッドに引き渡す前に非同期タスクの準備が整うのを待ちます。実行用のスレッド つまり、JavaScript コードはキューの形式で 1 ​​つずつ実行され、同時に実行できるコードは 1 つだけです。

以上がこの記事のすべての内容です。あまり詳しくない場合でも、イベント ループなどを書いてみることができます。これにより、習得が簡単になります。関連する推奨事項:javaScriptイベントループメカニズムを詳細に説明する - 講義1

javascriptイベントループメカニズムを詳細に説明 - 講義2

javascriptの詳細な説明イベントループメカニズムの例

以上がスレッドとイベントループのJavaScript実装の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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