php线程实现
PHP 线程实现方法
PHP 本身是单线程语言,但可以通过扩展或库实现多线程功能。以下是几种常见的实现方式:
使用 pthreads 扩展
pthreads 是一个 PHP 扩展,允许在 PHP 中使用多线程。安装后可以通过创建 Thread 类来实现多线程。

class WorkerThread extends Thread {
public function __construct($i) {
$this->i = $i;
}
public function run() {
echo "Thread {$this->i} is running\n";
}
}
for ($i = 0; $i < 5; $i++) {
$threads[$i] = new WorkerThread($i);
$threads[$i]->start();
}
使用 PCNTL 扩展
PCNTL 扩展主要用于进程控制,可以通过 fork 实现多进程(类似多线程)。

$pid = pcntl_fork();
if ($pid == -1) {
die('Could not fork');
} else if ($pid) {
// Parent process
pcntl_wait($status);
} else {
// Child process
echo "Child process\n";
exit;
}
使用 Gearman
Gearman 是一个分布式任务分发系统,可以在 PHP 中实现并行处理。
$client = new GearmanClient();
$client->addServer();
$client->doBackground("reverse", "Hello World");
使用 Swoole 扩展
Swoole 是一个高性能 PHP 协程框架,支持多线程和异步 IO。
$serv = new Swoole\Http\Server("127.0.0.1", 9501);
$serv->on('Request', function($request, $response) {
$response->end("Hello World");
});
$serv->start();
注意事项
- pthreads 在 PHP 7 及以下版本可用,PHP 8 已移除支持。
- PCNTL 在 CLI 模式下可用,Web 模式下不可用。
- Swoole 和 Gearman 需要额外安装扩展或服务。
- 多线程编程需注意线程安全和资源共享问题。






