本文整理匯總了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);
}