PHPackages                             kode/parallel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. kode/parallel

ActiveLibrary[Queues &amp; Workers](/categories/queues)

kode/parallel
=============

适用于 PHP 8.1+ 的高性能并行并发扩展库，支持 Runtime、Task、Future、Channel、Events、Fiber、Sync、Cluster 等完整功能，提供跨机器分布式任务执行能力

1.5.3(3mo ago)00Apache-2.0PHPPHP &gt;=8.1CI failing

Since Mar 19Pushed 3mo agoCompare

[ Source](https://github.com/kodephp/parallel)[ Packagist](https://packagist.org/packages/kode/parallel)[ RSS](/packages/kode-parallel/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (4)Versions (11)Used By (0)

Kode/Parallel
=============

[](#kodeparallel)

高性能 PHP 并行并发扩展库，基于 PHP `ext-parallel` 实现，为 PHP 8.1+ 提供简洁、健壮的并行编程接口。**支持跨机器分布式任务执行**。

[![PHP Version](https://camo.githubusercontent.com/1a5e13126d38c1d05f712dae30e7f60ae0444a9c882e9e526349ccba27facb8d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344382e312d626c7565)](https://php.net)[![License](https://camo.githubusercontent.com/54a591a708d9e41adc220d00e0caa979b5a5c035327d4eebaab67748cc889e4a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4170616368652d2d322e302d677265656e)](LICENSE)[![Package Version](https://camo.githubusercontent.com/95d46851cbf9da82d54dcc237c1995bb7028d48c4146db668fa8b95cd7428e8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56657273696f6e2d312e352e332d6f72616e6765)](composer.json)

目录
--

[](#目录)

- [简介](#%E7%AE%80%E4%BB%8B)
- [功能特性](#%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7)
- [系统要求](#%E7%B3%BB%E7%BB%9F%E8%A6%81%E6%B1%82)
- [安装](#%E5%AE%89%E8%A3%85)
- [快速开始](#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)
- [核心组件详解](#%E6%A0%B8%E5%BF%83%E7%BB%84%E4%BB%B6%E8%AF%A6%E8%A7%A3)
- [分布式集群](#%E5%88%86%E5%B8%83%E5%BC%8F%E9%9B%86%E7%BE%A4)
- [PHP 8.5 新特性](#php-85-%E6%96%B0%E7%89%B9%E6%80%A7)
- [Fiber 协程](#fiber-%E5%8D%8F%E7%A8%8B)
- [性能压测](#%E6%80%A7%E8%83%BD%E5%8E%8B%E6%B5%8B)
- [最佳实践](#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5)
- [常见问题](#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
- [文档索引](#%E6%96%87%E6%A1%A3%E7%B4%A2%E5%BC%95)

---

简介
--

[](#简介)

`kode/parallel` 是适用于 PHP 8.1+ 的高性能并行并发扩展库。该库基于 PHP 官方的 `ext-parallel` 扩展构建，提供了更高级别的面向对象 API、完整的中文文档支持，以及 PHP 8.5 新特性的前向兼容实现。

### 架构模型：多线程 + 分布式

[](#架构模型多线程--分布式)

```
┌─────────────────────────────────────────────────────────────────┐
│                      本地并行 (多线程)                            │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Runtime (PHP 解释器线程 #1)  ──── Channel ──── 线程 #N │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                      分布式集群 (跨机器)                          │
│                                                                 │
│  ┌─────────────┐      ┌─────────────┐      ┌─────────────┐    │
│  │   节点 #1    │◄────►│   节点 #2    │◄────►│   节点 #N    │    │
│  │ tcp://host1 │      │ tcp://host2 │      │ tcp://hostN │    │
│  │ :8001       │      │ :8002       │      │ :800N       │    │
│  └─────────────┘      └─────────────┘      └─────────────┘    │
│                                                                 │
│              ClusterManager (主节点调度)                          │
└─────────────────────────────────────────────────────────────────┘

```

### 核心能力

[](#核心能力)

层级能力组件**本地并行**多线程执行Runtime, Task, Future, Channel, Events**同步原语**互斥/信号量Mutex, Semaphore, Cond, Barrier**协程支持**Fiber 协程Fiber, FiberManager**跨机器**分布式集群Node, TcpNodeTransport, ClusterManager, ClusterServer**HTTP 并行**并行请求CurlMulti---

功能特性
----

[](#功能特性)

组件说明**Runtime**PHP 解释器线程管理，本地并行执行的基础**Task**并行任务闭包封装**Future**异步任务返回值访问**Channel**Task 间双向通信，支持有/无界限通道**Events**事件循环驱动**Fiber**PHP Fiber 协程封装（基于 kode/fibers）**Sync**同步原语：Mutex、Semaphore、Cond、Barrier**Pipe**进程间通信管道**CurlMulti**并行 HTTP 请求封装**Node**集群节点表示（跨机器）**TcpNodeTransport**TCP 节点传输层（跨机器）**ClusterManager**集群管理器，支持主节点选举、负载均衡**ClusterServer**集群服务器（任务执行器）**ThreadPool**线程池（Swoole 风格）**ThreadMap**线程安全 Map（Swoole Table 风格）**ThreadQueue**线程安全队列**ThreadBarrier**线程屏障**Util**PHP 8.5 兼容工具：管道操作符、Clone With 等**Installation**自动检测 ext-parallel 并提供安装提示**集成组件****kode 生态集成****ParallelRuntimeAdapter**kode/runtime 运行时适配器**FiberCoordinator**Fiber 协调器（集成 kode/fibers）**ContextualRuntime**上下文感知运行时（集成 kode/context）---

系统要求
----

[](#系统要求)

要求说明PHP 版本&gt;= 8.1必需扩展ext-parallel必需包kode/fibers, kode/context, kode/facade可选扩展ext-curl (用于 CurlMulti)### PHP 版本适配

[](#php-版本适配)

PHP 版本支持状态特性8.1✅ 完全支持基础 Fiber, readonly 属性8.2✅ 完全支持随机字节改进8.3✅ 完全支持改进的类型系统8.4✅ 完全支持改进的性能8.5✅ 最佳支持管道操作符、Clone With、持久化 cURL---

安装
--

[](#安装)

### 1. 安装 ext-parallel 扩展（必需）

[](#1-安装-ext-parallel-扩展必需)

```
# Linux/macOS via PECL
pecl install parallel

# 或者从源码编译
git clone https://github.com/krakjoe/parallel.git
cd parallel
phpize && ./configure && make && sudo make install
```

在 `php.ini` 中添加：

```
extension=parallel.so
```

安装后验证：

```
php -r "echo extension_loaded('parallel') ? 'OK' : '请先安装 ext-parallel';"
composer run-script check
```

### 2. 安装 Composer 包

[](#2-安装-composer-包)

```
composer require kode/parallel
```

这将自动安装所有依赖：kode/fibers, kode/context, kode/facade

---

快速开始
----

[](#快速开始)

### 1. 本地并行

[](#1-本地并行)

```
