PHP中对于(并发/并行)相关概念

PHP中对于并发/并行相关概念

  • 推荐链接
  • [多进程(fork / pcntl_fork())](#多进程(fork / pcntl_fork()))
  • 多线程(pthreads)
  • 并行扩展(parallel)
  • [异步任务池 / 协程(Swoole / Workerman)](#异步任务池 / 协程(Swoole / Workerman))
  • [多进程 CLI 调度(spawn/exec 多个 PHP CLI 进程)](#多进程 CLI 调度(spawn/exec 多个 PHP CLI 进程))

推荐链接

链接目录

并发(concurrency)是"有很多任务在同一时间段里交替进行",不一定同时运行;

并行(parallelism)是"多个任务在同一时刻同时运行"(真正并行需要多核/多CPU)。

多进程(fork / pcntl_fork())

通过操作系统把当前进程复制出若干子进程(每个子进程拥有自己的内存地址空间)。父子进程可以通过管道、socket、共享内存或文件/DB通信(IPC)。

javascript 复制代码
123

多线程(pthreads)

线程是进程内的执行单元,多个线程共享同一进程的内存空间(变量、资源共享更方便)。

并行扩展(parallel)

parallel 是一个较新的 PECL 扩展,提供线程/任务并行模型(可创建 Runtime/Threads 并在其中运行 closures),比 pthreads 更现代、更安全。每个 Runtime 有自己的上下文(类似轻量进程)。

异步任务池 / 协程(Swoole / Workerman)

通过事件循环 + 协程(轻量线程)/回调,把大量 IO 操作以非阻塞方式运行在单个或少量线程/进程上。协程看起来像同步代码,但底层是异步调度。

多进程 CLI 调度(spawn/exec 多个 PHP CLI 进程)

主进程以 shell/系统调用 exec/popen/proc_open 启动多个独立的 php CLI 进程(每个运行一个脚本/命令),每个子进程负责一部分工作(例如插入数据库的一批数据),主进程等待或轮询子进程完成。

相关推荐
BingoGo2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack5 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
QQ5110082855 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
WeiXin_DZbishe5 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5