⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

PHP 纤维(Fiber)

探索PHP 8.1 Fiber实现轻量级协作式多任务。 · 难度:入门 · +15XP

什么是Fiber?

Fiber(纤维)是PHP 8.1引入的轻量级并发机制,允许实现协作式多任务处理。与传统的进程或线程不同,Fiber在同一个线程内进行任务切换,由开发者显式控制,非常适合I/O密集型操作。

基本概念

简单示例

\$fiber = new Fiber(function (): void {
    echo "Fiber开始
";
    Fiber::suspend(); // 暂停
    echo "Fiber恢复
";
});

echo "主程序1 "; \$fiber->start(); // 启动Fiber,输出"Fiber开始" echo "主程序2 "; \$fiber->resume(); // 恢复Fiber,输出"Fiber恢复" echo "主程序3 "; // 输出顺序:主程序1 -> Fiber开始 -> 主程序2 -> Fiber恢复 -> 主程序3

传递数据

可以在suspend和resume之间传递数据。

\$fiber = new Fiber(function (\$initial): void {
    \$value = Fiber::suspend(\$initial);
    echo "收到:\$value
";
});

\$result = \$fiber->start('开始值'); echo "返回:\$result "; // 输出:返回:开始值 \$fiber->resume('新值'); // 输出:收到:新值

应用场景

Fiber特别适合异步I/O操作,如数据库查询、HTTP请求等。在非阻塞框架(如Amphp)中广泛使用。

练习提示

修改下方代码,创建一个Fiber,让它执行循环输出1到3,每次输出后暂停,由主程序恢复。确保输出顺序正确。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 90 篇
0 完成
🔥 0