javascript - js でマルチスレッド効果を実現するにはどうすればよいですか?
伊谢尔伦
伊谢尔伦 2017-05-19 10:26:22
0
5
608

js はどのようにしてマルチスレッド効果を実現できるのでしょうか?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(5)
过去多啦不再A梦

まず、JS の実行原理について話しましょう。JS エンジンが JS コードを実行するとき、それはシングルスレッドです。つまり、1 つのプロセスだけが同時に JS コードを実行し、コールバック関数も 1 つのプロセスで実行されます。 1 つずつ (コードではなくイベントの順序で) 順序)。 JS の非同期通信とタイミングは、JS スレッド コンテキストとは独立した別のスレッドによって実装されます。 JS タイミング操作を例に挙げると、JS エンジンが setTimeout(callbackFunction, 100) 操作を実行すると、100 ミリ秒のタイミングが必要であることがタイミング スレッドに通知され、JS エンジンはイベント ループに入ります。 100 ミリ秒後、タイミング エンジンは有効期限が切れたイベントをイベント キューに追加します。 JS エンジンはキューからタイムアウト イベントを読み取り、callbackFunction を実行します。 複数のイベントが同時にイベント キューに追加された場合、JS エンジンはコールバックを 1 つずつ実行するだけです。非同期の場合も同様です。JS コードが通信リクエストを開始し、通信スレッドが通信操作を実行し、操作の完了後に完了イベントをイベント キューに追加します。 JS エンジンはキューからイベントを取得し、コールバックを呼び出して通信結果を処理します。 JS エンジンがコールバック関数を実行するとき、同時に他のイベントに応答することはできません。

いいねを押す +0
黄舟

JS の Web ワーカーは、メイン スレッドをブロックすることなく、バックグラウンド スレッドで大規模な操作を実行できます。ただし、onmessage および postmessage を通じてメイン スレッドと通信します。ただし、DOM および特定の API を操作することはできません。詳細。

いいねを押す +0
洪涛

JavaScript はシングルスレッドです。

いいねを押す +0
黄舟

JavaScript はスレッド化されています。マルチスレッド効果を実現したい場合は、node.js を検討してノード イベントを通じて目的を達成します。

いいねを押す +0
漂亮男人

ブラウザで使用する場合、バックグラウンドで js を実行できる Service Worker が存在します。これは、追加のスレッドを開くようなものです。詳しくはわかりませんが、必要に応じて調べてください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート