阅读量:0
在 PHP Swoole 中,使用多线程进行任务调度可以通过创建多个子线程来实现。以下是一个简单的示例,展示了如何使用 Swoole 的 Thread
类来创建多个子线程并执行任务:
<?php require_once 'autoload.php'; use Swoole\Thread; // 任务函数 function task($id) { echo "Task $id started\n"; sleep(2); // 模拟任务执行时间 echo "Task $id finished\n"; } // 创建线程数量 $threadCount = 5; // 创建线程并启动 for ($i = 0; $i < $threadCount; $i++) { $thread = new Thread(function () use ($i) { task($i); }); $thread->start(); } // 等待所有线程完成 for ($i = 0; $i < $threadCount; $i++) { $thread->join(); } echo "All tasks completed\n";
在这个示例中,我们首先定义了一个名为 task
的任务函数,该函数接受一个参数 $id
。然后,我们创建了一个名为 $threadCount
的变量,用于存储要创建的线程数量。接下来,我们使用一个 for
循环创建并启动指定数量的子线程。在每个子线程中,我们调用 task
函数并传入一个参数,该参数表示任务的 ID。最后,我们使用另一个 for
循环等待所有子线程完成。
需要注意的是,Swoole 的多线程支持仅在 Swoole 4.x 版本中可用。如果你使用的是更早的 Swoole 版本,你需要升级到最新版本或者使用其他方法实现多线程任务调度。