php 如何启动一个线程池,非常实用的PHP 多线程,线程池例子

/*

* Homepage http://netkiller.github.io

*/

class ExampleWorker extends Worker {

public function __construct(Logging $logger) {

$this->logger = $logger;

}

protected $logger;

}

/* the collectable class implements machinery for Pool::collect */

class Work extends Stackable {

public function __construct($number) {

$this->number = $number;

}

public function run() {

$this->worker

->logger

->log("%s executing in Thread #%lu",

__CLASS__, $this->worker->getThreadId());

sleep(1);

printf("runtime: %s, %d\\n", date('Y-m-d H:i:s'), $this->number);

$this->status = "OK";

}

}

class Logging extends Stackable {

protected function log($message, $args = []) {

$args = func_get_args();

if (($message = array_shift($args))) {

echo vsprintf("{$message}\\n", $args);

}

}

}

$pool = new Pool(5, \\ExampleWorker::class, [new Logging()]);

foreach (range(0, 100) as $number) {

$pool->submit(new Work($number));

}

$pool->shutdown();

var_dump($pool);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值