icicleio/concurrent

Icicle 的并发组件。

v0.3.0 2016-01-15 19:07 UTC

This package is auto-updated.

Last update: 2024-09-14 02:48:14 UTC


README

使用本地线程和多进程并行化代码,实现真正的并发,无需阻塞。

此库是 Icicle 的组件,提供原生线程、多进程、进程同步、共享内存和任务工作器。像其他 Icicle 组件一样,此库使用从 可等待对象生成器 构建的 协程,使编写异步代码更像是编写同步代码。

Build Status Coverage Status Semantic Version MIT License @icicleio on Twitter

此库提供了一种并行化代码的方法,而不会在您的应用程序中散布复杂的锁检查和进程间通信。

为了尽可能灵活,此库附带了一系列非阻塞并发工具,可以根据需要独立使用,还有一个“有观点”的工作 API,允许您将工作单元分配给工作线程或进程池。

文档和支持

要求
  • PHP 5.5+ 用于 v0.3.x 分支(当前稳定版)和 v1.x 分支(镜像当前稳定版)
  • PHP 7 用于 v2.0(master)分支,支持生成器委派和返回表达式
建议
  • pthreads 扩展:PHP 中并发最佳扩展选项,但需要将 PHP 编译为 --enable-maintainer-zts 以启用线程安全。
  • pcntl 扩展:启用分叉并发方法。
  • sysvmsg 扩展:在分叉或进程之间共享内存所需。
安装

建议使用 Composer 包管理器安装。有关安装和使用 Composer 的信息,请参阅 Composer 安装指南

运行以下命令以在项目中使用此包

composer require icicleio/concurrent

您还可以手动编辑 composer.json 以将此库添加为项目依赖项。

// composer.json
{
    "require": {
        "icicleio/concurrent": "^0.3"
    }
}

开发和贡献

有兴趣为 Icicle 做贡献吗?请参阅我们 贡献指南,位于 Icicle 仓库 中。

想要对源代码进行修改?仓库中提供了一个 Vagrant 虚拟机,以提供一个运行并发线程和进程的共同开发环境,并附带了一系列方便的工具和脚本,用于测试和实验。

启动和登录虚拟机的操作非常简单

vagrant up && vagrant ssh

一旦进入虚拟机,您可以使用 Pickle 安装 PHP 扩展,使用 newphp VERSION 切换版本,并使用 Valgrind 进行内存泄漏测试。