本文整理汇总了PHP中Worker::start方法的典型用法代码示例。如果您正苦于以下问题:PHP Worker::start方法的具体用法?PHP Worker::start怎么用?PHP Worker::start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Worker
的用法示例。
在下文中一共展示了Worker::start方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: start
public function start($options = PTHREADS_INHERIT_ALL)
{
ThreadManager::getInstance()->add($this);
if (!$this->isRunning() and !$this->isJoined() and !$this->isTerminated() and !$this->isShutdown()) {
return parent::start($options);
}
return false;
}
示例2: start
public function start(int $options = PTHREADS_INHERIT_ALL)
{
ThreadManager::getInstance()->add($this);
if (!$this->isRunning() and !$this->isJoined() and !$this->isTerminated()) {
if ($this->getClassLoader() === null) {
$this->setClassLoader();
}
return parent::start($options);
}
return false;
}
示例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: startWorkers
private function startWorkers()
{
$wrapper = realpath(__DIR__ . '/../../../../bin/phpunit-wrapper');
for ($i = 1; $i <= $this->options->processes; $i++) {
$worker = new Worker();
if ($this->options->noTestTokens) {
$token = null;
} else {
$token = $i;
}
$worker->start($wrapper, $token);
$this->streams[] = $worker->stdout();
$this->workers[] = $worker;
}
}
示例5: 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);
}
示例6: 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();
示例7: start
public function start(int $options = PTHREADS_INHERIT_ALL)
{
return parent::start(PTHREADS_INHERIT_NONE);
}
示例8: start
public final function start($options = PTHREADS_INHERIT_ALL)
{
ThreadManager::getInstance()->add($this);
return parent::start($options);
}
示例9: start
public function start()
{
return parent::start(PTHREADS_INHERIT_NONE);
}
示例10: start
/**
* Start the worker
* @param type $options
* @return type
*/
public function start($options = null)
{
return parent::start($this->inheritance);
}