English | 简体中文 | 繁體中文
查询

Pool::shutdown()函数—用法及示例

「 停止并销毁一个池对象 」


函数名称:Pool::shutdown()

适用版本:PHP 7.0.0及以上版本

函数说明:Pool::shutdown() 方法用于停止并销毁一个池对象。当调用此方法时,会等待所有正在执行的任务完成后再停止池,并释放所有资源。

用法示例:

<?php
class MyWorker extends Threaded {
    public function run() {
        // 在此处执行任务的代码
        echo "执行任务" . PHP_EOL;
    }
}

$pool = new Pool(4, MyWorker::class);

for ($i = 0; $i < 10; $i++) {
    $pool->submit(new MyWorker());
}

// 等待所有任务执行完成
$pool->shutdown();

echo "所有任务执行完毕" . PHP_EOL;
?>

在上面的示例中,我们创建了一个名为MyWorker的自定义线程类,该类继承自Threaded。在run()方法中,我们可以编写具体的任务逻辑。然后,我们创建了一个Pool对象,指定了线程池的大小为4,并将MyWorker类作为线程的类名。

接下来,我们使用一个循环提交10个任务到线程池中。最后,我们调用shutdown()方法来停止并销毁线程池。在调用shutdown()方法之后,会等待所有任务执行完成,然后输出"所有任务执行完毕"。

请注意,Pool类和Threaded类是PHP多线程扩展(pthreads扩展)提供的功能,需要在PHP编译时启用--enable-pthreads选项。此外,线程池和多线程在PHP中仍处于实验性阶段,建议在生产环境中谨慎使用。

补充纠错
上一个函数: PharData::delMetadata()函数
下一个函数: Pool::resize()函数
热门PHP函数
分享链接