検索

ホームページ  >  に質問  >  本文

javascript - js でマルチスレッド効果を実現するにはどうすればよいですか?

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

伊谢尔伦伊谢尔伦2807日前668

全員に返信(5)返信します

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:28:22

    まず、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
  • 黄舟

    黄舟2017-05-19 10:28:22

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

    返事
    0
  • PHP中文网

    PHP中文网2017-05-19 10:28:22

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

    返事
    0
  • 黄舟

    黄舟2017-05-19 10:28:22

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

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:28:22

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

    返事
    0
  • キャンセル返事