<?php
// 引入pthreads扩展,这是PHP实现多线程的库
// 注意:pthreads扩展仅在CLI模式下可用,并且需要PHP版本为7.2或更低版本。
// PHP 8.0及更高版本不再支持pthreads扩展。
class MyThread extends Thread {
public function run() {
// 线程执行的任务
for ($i = 0; $i < 5; $i++) {
echo "Thread " . $this->getThreadId() . " is running iteration " . $i . "\n";
sleep(1); // 模拟耗时操作
}
}
}
$threads = [];
for ($i = 0; $i < 3; $i++) {
$threads[$i] = new MyThread();
$threads[$i]->start(); // 启动线程
}
foreach ($threads as $thread) {
$thread->join(); // 等待所有线程完成
}
echo "All threads have finished.\n";
?>
引入pthreads扩展:
pthreads 是 PHP 实现多线程的扩展。它允许你在 PHP 中创建和管理线程。需要注意的是,pthreads 扩展仅在 CLI(命令行接口)模式下可用,并且适用于 PHP 7.2 或更低版本。PHP 8.0 及更高版本不再支持此扩展。定义线程类:
MyThread 类继承自 Thread 类,并重写了 run() 方法。run() 方法是线程启动后执行的任务逻辑。线程任务:
run() 方法中,我们使用一个简单的 for 循环来模拟线程的工作。每次迭代都会输出当前线程的 ID 和迭代次数,并通过 sleep(1) 模拟耗时操作。启动线程:
start() 方法启动线程。每个线程会独立运行其 run() 方法中的代码。等待线程完成:
join() 方法确保主线程等待所有子线程完成后再继续执行。这可以防止主线程提前结束,导致子线程未完成即被终止。输出信息:
pthreads 扩展在 PHP 8.0 及更高版本中已被移除,如果你使用的是较新的 PHP 版本,可能需要考虑其他并发解决方案,例如协程(如 Swoole)、进程控制(如 pcntl_fork)或其他异步编程库。上一篇:php读取csv文件
下一篇:php爬虫框架
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站