2017-03-08 6 views
0

私はJavaScriptのシングルスレッド、非同期性に関する多くの記事を読んでおり、説明のために使用できる現実的な類推を見つけることを一度も求めていました。アナロジーを使用してJavaScriptのシングルスレッドの性質を説明するには?

私はJavaScriptがカフェテリアホールのようであると想定しています。あなたは、メインドアを通ってカフェテリアホールに来る一連の人々を持っています。ほとんどのカフェテリアのように、トレーシステムを持っています。トレイシステムを持っています。トレイを手に取ってレール上に置き、各フードステーションを訪問します。今度は、各人が次々と軌道に乗ると想像してみてください。これはJavaScriptのシングルスレッドの性質です。しかし、JavaScriptも非同期的に実行できるので、これを類推に適用する必要があります。

したがって、この食品ホールでは、鉄道に沿って5つの食品ステーションがあり、私たちは3人の鉄道の始まり、人物A(同期)、人物B(非同期)、人物C(同期)である。人A、B、Cはフードステーション1を通過し、同じ順序でフードステーション2に行く。今、人物Aは問題なしでフードステーション2を通過しますが、人物Bは尽きるものがあり、シェフが現在料理しています。したがって、人B(非同期)は、食事が準備できるまでそこで待機することができます。一方、Person Cはアイテムを手に入れ、Person Bを飛ばします。Person AとCは今度はレールに沿って進み、Bは食事を準備するのを待ちます。最後に、人Bは食事を集め、A-C-Bの順番に到達する。

このコードでは、JavaScriptが1つのスレッド(レール)を使用する方法と、非同期のコードが実行されているときの実行終了時に返されるデータの順序が異なる方法を示します。

この類推は、シングルスレッドの非同期JavaScriptの性質を再現していますか?

答えて

2

おそらく、ここではマクドナルドがドイツで使っているシステムのように説明できます。あなたのハンバーガーが利用できない場合、それを取得するには数秒以上かかるので、番号を取得し、すでに持っているものを取る。あなたのハンバーガーが行われると誰かが来て、あなたにハンバーガーを与えます。ある意味では、これはあなたが要求したデータを提供するコールバックであり、今ではあなたの仕事をすることができます(ハンバーガーを離れて)

+0

もう一度考えてみてください。たぶんあなたは、あなたがハンバーガーを食べて、彼が周りを回って次の顧客に奉仕できるようにペーパーラップバックを与えるまで、サーバーが待たなければならないと付け加えてください^^ –

+0

これはもっとプロミスとは関係ありませんか? – JoeTidee

関連する問題