本文整理汇总了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();