非同期プログラミングとマルチスレッド:互いに補完する2つの方法
多くの開発者は、最初に非同期プログラミングをマルチスレッドと同一視し、複数のプロセッサにタスクを割り当てる交換であると考えていました。ただし、注意深く勉強すると、2つの間にわずかではあるが重要な違いがあることがわかります。
非同期方法:非ブロッキングとコンテキストに関連する非同期メソッド設計は、非ブロッキング操作に使用されます。 「待ち望まれている」表現は、タスクの実行中に現在のスレッドを停止しません。代わりに、残りの方法を継続として登録し、非同期メソッドの呼び出し元にコントロールを返します。
興味深いことに、非同期方法は追加のスレッドを作成する必要はありません。非同期方法は、現在の同期コンテキストで実行され、アクティビティ中にスレッド時間のみを使用するため、複数のスレッドを必要としません。 「task.run」はCPU密度の高い作業をバックグラウンドスレッドにアンインストールできますが、結果を待つときは無効です。
Multi -Threaded:マルチスレッド作業 対照的に、マルチスレッドには複数のスレッド間でタスクを割り当てることが含まれ、各スレッドには独自の特別なプロセッサがあります。非同期処理タスク。一方、スレッドはこれらのタスクの作業スレッドに焦点を当てています。アクティビティ:非同期朝食
朝食を作ることを想像してください:
同期:
最初に卵を炒め、次にパンを焼きます。 非同期シングルスレッド:
目玉焼きを開始し、タイマーを設定します。パンを焼き始めて、タイマーをセットします。調理中にキッチンをきれいにします。タイマーが鐘を鳴らした後、食べ物を取り除き、火から食べます。非同期マルチスレッド:
本質的に、非同期プログラミングを使用すると、追加のスレッドをブロックしたり作成したりせずにタスクを同時に実行できます。パフォーマンスを最適化し、応答能力を維持するための強力なツールです。
以上が非同期プログラミングとマルチスレッドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。