データベース レコードをテストする一種のテスト システムを php で作成しています。テストケースごとにphpファイルを分けました。1 つの (マスター) ファイルには、テスト番号とそのテストの入力パラメーターが URL 文字列の形式で与えられます。そのファイルはテスト番号を決定し、テスト番号に基づいて適切なテスト ケースを呼び出します。これで、渡される URL 文字列の束ができました。それらをその (マスター) ファイルに渡し、パラメーターを受け取った後、すべてのテスト ケースが独立して動作するようにします。
質問する
1298 次
3 に答える
1
PHP はシングル スレッド エンティティであり、現時点ではマルチスレッドは存在しません。ただし、マルチスレッドについてよく尋ねられるユース ケースで、同様の (ただし同一ではない) 結果を得るためにできることがいくつかあります。繰り返しになりますが、PHP にはマルチスレッドはありませんが、以下のいくつかは、要件に一致する特性を持つものを作成するのにさらに役立つ場合があります。
- libevent: これを使用して PHP のイベント ループを作成すると、ブロックの問題が軽減されます。http://www.php.net/manual/en/ref.libevent.phpを参照してください。
- curl_multi: 他のサービスへの get/post を起動できるもう 1 つの便利なライブラリ。
- プロセス管理: これは私自身は使用していませんが、プロセス管理が問題の 1 つの側面である場合に役立つ可能性があります。http://uk.php.net/pcntl
- Gearman: 今、これを使っていますが、かなり良いです。ワーカーを作成し、プロセスをキューにスピンオフできます。また、rabbit-php または ZeroMQ も参照してください。
于 2012-05-02T12:32:35.310 に答える
0
PHP はマルチスレッドではなく、シングルスレッドです。PHP 内で新しいスレッドを開始することはできません。あなたの最善の策は、file_get_contents
スレッドを「模倣」する別の PHP スクリプトへの (または cURL) でしょう。真のマルチスレッドは PHP では利用できません。
http://phplens.com/phpeverywhere/?q=node/view/254にある John の投稿もご覧ください。
于 2012-05-02T12:13:08.300 に答える
-1
できることは、cURLを使用してリクエストをサーバーに送り返すことです。リクエストが処理され、結果が返されます。
例は次のとおりです。
$c = curl_init("http://servername/".$script_name.$params);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($c);
curl_close($c);
これはマルチスレッドとは見なされませんが、目標を達成するために使用できます。
于 2012-05-02T11:47:46.413 に答える