以前は、これらの目的のために、スクリプトのコピーをいくつか実行するか、またはpcntlを必要なレベルよりも低いレベルで使用していました。 これと、スレッドを扱うJavaのイデオロギーにより、phpThreadパッケージを作成するように促されました。
だから:
この単純なコードは、5つの子を作成し、5秒間待機してから停止します。<?php
include 'thread.class.php' ;
include 'threadCollection.class.php' ;
class MyThread extends Thread
{
public function run()
{
for (;;)
{
echo date( 'r' ). "\n" ;
if (!$ this ->sleep(2)) { return ;}
}
}
}
echo "Starting...\n" ;
$threads = new threadCollection;
for ($i = 0; $i < 5; ++$i) {$threads->push( new MyThread);}
$threads->start();
echo "Doing pseudo-job (sleep for 5 seconds)...\n" ;
sleep(5);
echo "Pseudo-job in master done. Stopping and waiting...\n" ;
$threads->stop();
$threads->wait();
* This source code was highlighted with Source Code Highlighter .
こちらで入手できます-code.google.com/p/phpthread
このプロジェクトは文字通りひざの上に書かれていますが、うまく機能します。
現時点では、ソースコードの重量は1,247バイトです。
近い将来-競争力のあるリポジトリで便利な仕事をする。
この手法を使用する必要があります。
1.プログラムが十分な速度でデータを受信せず、ダウンタイムが増加する場合。 たとえば、美しいグラフを生成する場合、1つのスレッドでDBMSからデータを受信し(重いクエリが実行され)、2番目のスレッドで描画できます。
2.いくつかの操作タスクを実行する必要があり、プロセッサーをより効率的に使用する場合。
フィードバック、アイデア、コメントを歓迎します。
ご清聴ありがとうございました。