ホームページ  >  記事  >  バックエンド開発  >  nodejs学習メモ_インフラストラクチャにおけるnodejsとPHPの違い 共有状態同時実行

nodejs学習メモ_インフラストラクチャにおけるnodejsとPHPの違い 共有状態同時実行

WBOY
WBOYオリジナル
2016-06-23 13:57:35871ブラウズ

Node.js に関するほとんどの議論は、高い同時実行性の処理に焦点を当てています。開発時には、ノード内で行われるトレードオフと、ノード アプリケーションのパフォーマンスが優れている理由を理解する必要があります。

node は、共有状態の同時実行性という複雑な概念を JavaScript に導入します。


ノードは長時間実行プロセスを使用します

phpはApacheで複数のプロセスを生成します

以下に示すように:

コード検証:

PHP:

<?php$i = 0;$i++;echo $i

ノードジェス:

りー

ブラウザを使用してこれら 2 つのアドレスをリクエストする場合

PHP は常に 1 を出力します

Node.js は 1 2 3 4 5 6... を出力します

写真からわかるように、PHP の実行が終了した後プログラムを実行すると、次回実行時に新しいスレッドが再適用されます。変数は実行されるたびにメモリに適用され、値 0 が割り当てられ、1 が加算されるため、出力は 1 になります

そして、nodejs は常に長時間実行されるプロセスを維持します。変数 i は常にメモリ内に存在します。実行されるたびに 1 ずつインクリメントされるので、 1 2 3 4 5 6 と表示されます...


Apache によって生成された新しいスレッドは毎回ステータスを更新し、$i が再割り当てされます,

ノードはそうではなく、

のたびに $i が 1 ずつ増加します。 したがって、ノードでは、コールバック関数がメモリ内の変数を変更する場合は特に注意する必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。