本文整理汇总了PHP中Worker::shutdown方法的典型用法代码示例。如果您正苦于以下问题:PHP Worker::shutdown方法的具体用法?PHP Worker::shutdown怎么用?PHP Worker::shutdown使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Worker
的用法示例。
在下文中一共展示了Worker::shutdown方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testWorkerStack
public function testWorkerStack()
{
$worker = new Worker();
$work = new WorkerTestWork();
$worker->start();
$worker->stack($work);
$worker->shutdown();
$this->assertEquals($work->hasWorker, true);
}
示例2: stop
/**
* Stops this Worker.
*
* @param integer $signal [OPTIONAL] Contains the signal in the case of a PCNTL signal.
*/
public function stop($signal = null)
{
if (!$this->running) {
return;
}
if (null !== $signal) {
$this->getLogger()->info('Stop called because of signal #' . $signal . '. Current state: ' . $this->worker->getState() . '.');
} else {
$this->getLogger()->info('Stop called: ' . $this->worker->getState() . '.');
}
$this->running = false;
$this->worker->shutdown();
}
示例3: testWorkerGc
public function testWorkerGc()
{
$worker = new Worker();
$work = new WorkerTestWork();
$worker->start();
$worker->stack($work);
$worker->shutdown();
$this->assertEquals(1, $worker->collect(function ($task) {
return false;
}));
$this->assertEquals(0, $worker->collect(function ($task) {
return $task->isGarbage();
}));
}
示例4: microtime
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();