1

Web プログラミングを始める前は、簡単だと思っていました。現在、1 年間の経験を経て、主に同時実行の問題が原因で、非常に困難になる可能性があると思います。

それは非常に予想外の発見だったので、経験豊富な友人 (e ショップなどのアプリを作成したことがある) に聞いてみました。具体的には、解決する必要のある並行性の問題が本当に発生する可能性があるかどうか、またはデータの一貫性が失われる危険性があるかどうかを尋ねたところ、「うーん、それは考えたこともありませんでした」とのことでした。そのため、私は自分の正気を少し恐れており、疲れ果てたウェブ検索でさえ、説得力のある質問に答えていません.

したがって、ここで私は自分の心のレールが非常に白い飾り張りの部屋につながっていないことを確認する必要があります。

1) LAMP フレームワークを仮定すると、Apache によって実行される 2 つの php スクリプトが何らかの方法で実行中に重複する可能性はありますか?

2) 可能な方法でインスタンスが重複している状態で、同じスクリプトを同時に複数回実行することは可能ですか?

3) LAMP の選択は重要でしたか、それとも今日使用されている Web 開発環境のように同じことが当てはまりますか?

4) 同時実行性が本当に問題になる可能性があり、私がただでっち上げているだけではない場合、頭を抱えてこれらの問題を次のように解決するのに役立つ理論はありますか? 」そしてしばらくすると、「ねえ、これは X の古典的な例で、この方法で解決できます」.

5) なぜプログラマーは、Web 開発は簡単にできると思っているのに、「コーシャ」ではないと考える傾向があるのですか? (これに答える必要はありませんが、その事実は今私を怒らせますが、以前は私と同じだったことを知っています)

私は知っています、これはおそらくstackoverflowの観点からは多面的な一般的な質問ですが、私の周りで実際に助けてくれる人は誰もいません。

4

1 に答える 1

3

共有リソースを保護する原則は、Web アプリと標準のデスクトップ プログラムとであまり変わらないと思います。リソースはリソースであり、特に複数のインスタンスを防止しない限り、アプリは複数回実行できます。

1) LAMP フレームワークを仮定すると、Apache によって実行される 2 つの php スクリプトが何らかの方法で実行中に重複する可能性はありますか?

はい。Apache はスレッド/プロセスでリクエストを実行できます。2 つの PHP スクリプト要求が同時に実行される可能性があります。

2) 可能な方法でインスタンスが重複している状態で、同じスクリプトを同時に複数回実行することは可能ですか?

はい。Apache はスレッド/プロセスでリクエストを実行できます。2 つの PHP スクリプト要求が同時に実行される可能性があります。

3) LAMP の選択は重要でしたか、それとも今日使用されている Web 開発環境のように同じことが当てはまりますか?

Apache には、複数のスレッドでリクエストを実行する方法論があります。非同期アプローチを使用するサーバーは他にもあります。いずれにせよ、コード内の同時操作に対するガードを提供するために Web サーバーに依存するべきではありません。リソースをチェックするのはコードの責任です。

4) 同時実行性が本当に問題になる可能性があり、私がただでっち上げているだけではない場合、頭を抱えてこれらの問題を次のように解決するのに役立つ理論はありますか? 」そしてしばらくすると、「ねえ、これは X の古典的な例で、この方法で解決できます」.

それは実際には、コードのリソースと、何を共有しているかにかかっています。たとえば、スクリプトがファイルシステムで動作する必要がある場合、コードは何らかの同期を介してチェックする必要があります。データベースは、行またはテーブルへの内部ロックを使用してそれを処理する傾向があります。

5) なぜプログラマーは、Web 開発は簡単にできると思っているのに、「コーシャ」ではないと考える傾向があるのですか? (これに答える必要はありませんが、その事実は今私を怒らせますが、以前は私と同じだったことを知っています)

Web デザイン (特にサーバー側) のやり方を知らない人は、ワード文書を入力するだけだと思っていると思います。一度やってみると、大変な作業であることがわかります。

于 2012-07-14T22:58:12.337 に答える