camspiers/pthreads-pool

此包最新版本(0.2.0)没有可用的许可证信息。

pthread的线程池实现

0.2.0 2014-02-09 21:46 UTC

This package is auto-updated.

Last update: 2024-09-19 14:13:22 UTC


README

pthreads 的线程池实现

示例

namespace Camspiers\Pthreads;

require_once 'vendor/autoload.php';

class Job extends Work
{
    protected function process()
    {
        // Do some work, and optionally return some data
        return range(1, 1000);
    }
}

$pool = new Pool();

for ($i = 0; $i < 1000; $i++) {
    $pool->submitWork(new Job());
}

// get jobs as they finish
foreach ($pool->getFinishedJobs() as $job) {
    var_dump($job->getData());
}

$pool->shutdown();

与自动加载器一起使用

pthreads 中,需要在每个线程(或工作线程)中注册自动加载。这可以通过在池上设置加载器来实现。

$loader = require 'vendor/autoload.php';

$pool = new \Camspiers\Pthreads\Pool();
$pool->setLoader($loader);

// Use the pool