php 线程池创建
减肥是一件大事,先让我吃饱了,再来好好计划计划。
PHP线程池编程原理
1、创建线程池
线程池由两部分组成:线程管理器和工作线程。线程管理器用于管理线程的创建、销毁、统计等工作,而工作线程用于执行具体的任务。当应用程序启动时,线程管理器会创建n个工作线程,并将它们加入到线程池中。
2、任务队列管理
任务队列用于存储待执行的任务,线程管理器会将任务添加到任务队列中。
3、工作线程处理任务
工作线程会从任务队列中取出任务,并执行该任务。任务处理完毕后,线程不会销毁,而是继续从队列中取出任务进行处理。
4、线程池销毁
线程池的销毁分为两种情况:一种是应用程序退出时,线程管理器会销毁所有的工作线程;另一种情况是线程池空闲一段时间后,线程管理器会销毁所有的工作线程。
PHP的线程池编程常常使用第三方扩展,如Thread、pthreads等。
需要记性继承 pool类,threaded类
pool 源码类
class Pool {
/* 属性 */
protected $size;
protected $class;
protected $workers;
protected $ctor;
protected $last;
/* 方法 */
public function __construct(int $size, string $class = ?, array $ctor = ?)
public function collect(Callable $collector = ?):int
public function resize(int $size): void
public function shutdown(): void
public function submit(Threaded $task): int
public function submitTo(int $worker, Threaded $task): int