2

PHP で memcached を使用して、比較的高度な処理を行っていることに気付きました。キャッシュのロックフリーの性質によって引き起こされる競合状態と同時実行の問題について考えて解決するのは、精神的な闘争になりつつあります。

PHP は、同時実行性 (スレッド、誰か?) に関してはツールがかなり貧弱に見えるので、これを適切にテスト/デバッグするためのソリューションがあるかどうか疑問に思います。

2 人のユーザーが 2 つのスクリプトを要求するまで待ちたくありません。これらのスクリプトは同時に並列プロセスとして実行され、同時実行性の問題が発生して頭を悩ませたり、clusterfsck に雪だるまになるまで気付かなかったりする可能性があります。

私が知っておくべき魔法のPHP同時実行ワンドはありますか?

4

3 に答える 3

3

PHP はマルチスレッド用に設計された言語ではありません。

ミューテックス機能が必要な場合、PHP にはコンパイル可能なセマフォ関数があります。

Memcache にはミューテックス機能はありませんが、Memcache::add()メソッドを使用してエミュレートできます。

MySQL データベースを使用していて、ある種の競合状態の破損を防止しようとしている場合は、lock tablesステートメントを使用するか、transactionsを使用できます。

于 2008-09-15T21:16:51.740 に答える
1

同時に複数のリクエストを実行できる負荷テスト ツールを使用してコードをテストすることもできます。Jmeterが思い浮かびます。

于 2008-09-15T21:17:33.983 に答える
0

この問題専用ではありませんが、FirePHP ?

于 2008-09-15T21:10:40.990 に答える