NodeJは、最新のアップデートでマルチスレッド機能を追加します。
マルチスレッドと非同期の違いは何ですか?簡単な例で理解したいと思います。非同期よりもマルチスレッドを使用する必要があるのはどの場合ですか?
最初に理解することは、コンピューターのさまざまな部分がさまざまな速度で動作することです。ディスク、ネットワークなど...
したがって、非同期コードがネットワークまたは大量のファイルのみを処理しているように見える場合は、そのioを呼び出しましょう。
うんいいね。
ここで、コードが実行されており、ファイルを読み取る必要があると考えてみましょう。CPU時間で。これは「数千年」なので、CPUは言います。データが利用可能になったら、私に知らせてください。インマは他のいくつかのsh * tをやりに行きます。
その後、ディスクが戻ってきて、必要なデータを取得したようです。CPUが好きですか?私が「待っていた」ことのデータ。
これがどのように効率的になるかがわかります。
データを取得していない場合はどうなりますか。CPUが複数のことを行う必要がある場合はどうなりますか。
これに従って、朝、ジュースを注いでサンドイッチを作るかもしれません。両方を行うのは難しいですよね?
しかし、卵が調理されるのを待っている間、簡単にジュースを注ぐことができます。
スレッド...スレッドはより多くの手を取得することです。画像のサイズを縮小するなど、さらに多くのタスクを実行する必要があります。画像が縮小するのが待ちきれません。画像を積極的に縮小する必要がありますが、他の人に対応する必要があります。複数の画像を縮小する必要があります。一度に1つしか縮小できません。
だから今、あなたは概念を手に入れました。
非同期コードは、ディスクやネットワークのように、ioを待機するだけのダムスレッドを作成します。それはまだスレッドですが、コードはそれをかなりうまく処理します。それはあなたのためにたくさんの複雑な仕事を解決します。あなたはただawaitとasyncを書くだけです。
スレッドは通常、より多くのスレッドを管理する必要があります。このように考えてください。
ディスクからの読み取り、ネットワークからの読み取り..これらはかなり明白なことであり、その周りにAPIを作成することを確認できます。しかし、CPUは機能しますが、CPUに実行させることができることは無限にあります。スレッドは通常、より多くの手作業を伴います。
最後に、スレッドが実行できることは1つだけです。オレンジジュースを注ぎ、片手でサンドイッチにバターを塗ります。難しいですよね?スレッド、余分な手が必要な場合があります。
卵を調理し、片手でスイカを切ります。いくつかのものが終了するのを待って、他のことをする方法を見ることができます。
行く..あなたは今男だ!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加