当前位置:首页>php>[PHP]进程、线程、协程、纤程的关系

[PHP]进程、线程、协程、纤程的关系

  • 2026-08-24 12:59:27
[PHP]进程、线程、协程、纤程的关系

进程/Process

操作系统中的执行单元,有独立内存空间和系统资源。

进程间相互隔离,通过IPC机制通信,开销大安全性高。

Swoole中Manager进程的子进程包括Worker进程和Task进程,和Master进程并行。

线程/Thread

线程是进程执行单元,共享进程的内存和资源,调度通常采用‌抢占式‌方式。

线程间可直接访问共享数据。

PHP本身是单线程,即每次请求是一个进程中仅有一个线程。

PHP可通过安装swoole扩展实现多进程或多线程,网上有其余推荐但是有些是废弃的扩展。

协程/Coroutine

非操作系统操作,有代码管理。

在一个线程中切换多个任务。

协程比线程成本低,适合高并发场景,但需显式挂起/恢复。

纤程/Fiber

纤程是协程的一种具体实现。

PHP中,纤程概念与协程相似。

PHP8中Fiber类和Swoole提供协程式编程接口。

纤程强调协作式调度,由开发者控制切换点,避免了线程的抢占式开销。

总结

多线程比多进程开销小,多进程隔离性强稳定性高。

开销由大到小:进程>线程>协程/纤程

Swoole中协程TCP/UDP服务可以直接使用协程,http服务只能在on回调中使用协程。

Swoole官网文档中分为线程、进程、协程内容,文件异步操作也是在协程中。

参考

  • 并发编程中的进程、线程、协程与纤程详解[1]

  • 进程线程结构图[2]

  • PHP多线程与多进程[3]

参考资料
[1] 

并发编程中的进程、线程、协程与纤程详解: https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_5123704743139249479&sourceFrom=search_a

[2] 

进程线程结构图: https://wiki.swoole.com/zh-cn/#/server/init?id=进程线程结构图

[3] 

PHP多线程与多进程: https://blog.csdn.net/lskob/article/details/154576510

往期回顾

 [推荐]微信公众号排版编辑器

 [推荐]书籍推荐 D:20260127

 [PHP] SWOOLE PROCESS

 [推荐] 书籍推荐 D:20260124

扫描识别二维码关注我们获取更多

最新文章

随机文章