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 进程(每个运行一个脚本/命令),每个子进程负责一部分工作(例如插入数据库的一批数据),主进程等待或轮询子进程完成。

相关推荐
两个人的幸福9 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户30745969820712 天前
PHP 扩展——从入门到理解
php
鹏仔先生13 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下13 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip13 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒13 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog25013 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis13 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel