本文整理匯總了PHP中Worker::stack方法的典型用法代碼示例。如果您正苦於以下問題:PHP Worker::stack方法的具體用法?PHP Worker::stack怎麽用?PHP Worker::stack使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Worker
的用法示例。
在下文中一共展示了Worker::stack方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: testGetStacked
public function testGetStacked()
{
$worker = new Worker();
$work = new WorkerTestWork();
$worker->stack($work);
$this->assertEquals(1, $worker->getStacked());
$worker->stack($work);
$this->assertEquals(2, $worker->getStacked());
}
示例2: testWorkerGc
public function testWorkerGc()
{
$worker = new Worker();
$work = new WorkerTestWork();
$worker->start();
$worker->stack($work);
$work->synchronized(function ($work) {
if (!$work->isGarbage()) {
$work->wait();
}
}, $work);
$this->assertEquals($worker->collect(function ($task) {
return false;
}), 1);
$this->assertEquals($worker->collect(function ($task) {
return $task->isGarbage();
}), 0);
}
示例3: microtime
$np = 0;
for ($i = 0; $i <= $n; $i++) {
$x = lcg_value() * 2 - 1;
$y = lcg_value() * 2 - 1;
if ($x ** 2 + $y ** 2 <= 1) {
$np++;
}
}
return $np;
};
/* make call in background thread */
$argv = [$interation / $threads];
$time_start = microtime(true);
$np_result = 0;
// Initialize and start the threads
$worker = new Worker();
$work = array();
$o = 0;
while (++$o < $threads) {
/* items stacked could be using resources available in worker */
$work[] = new ParallelThread($closure, $argv);
}
foreach ($work as $w) {
$worker->stack($w);
}
$worker->start();
//$pi = 4 * $np_result / ($argv[0]*($threads));
//echo $np_result."<br>";
//echo $pi."<br>";
echo microtime(true) - $time_start;
$worker->shutdown();