amphp/parallel-functions

并行处理变得简单。

资助包维护!
amphp

安装次数: 756,485,858

依赖者: 31

建议者: 3

安全: 0

星标: 268

关注者: 15

分支: 18

开放问题: 3

v2.0.0 2023-11-25 01:01 UTC

This package is auto-updated.

Last update: 2024-08-25 02:49:00 UTC


README

AMPHP 是一个为 PHP 设计的事件驱动库集合,考虑到了纤程和并发。 amphp/parallel-functions 提供了一个实用函数,该函数将可调用的函数包装到另一个可调用的函数中,该函数将在另一个进程或线程中执行。可调用对象或闭包内的所有数据都必须是可序列化的。

请参阅 amphp/parallel 中的 WorkerTask 接口,以获取更灵活和可定制的并行执行任务的 API。

Latest Release License

安装

此包可以作为 Composer 依赖项安装。

composer require amphp/parallel-functions

要求

  • PHP 8.1+

示例

<?php

use function Amp\ParallelFunctions\parallelMap;

$responses = parallelMap([
    'https://google.com/',
    'https://github.com/',
    'https://stackoverflow.com/',
], function ($url) {
    return file_get_contents($url);
});

请注意,这里使用 file_get_contents() 作为示例 阻塞 函数(即,在等待 I/O 时暂停进程的函数)。

我们建议使用 amphp/http-client 进行 HTTP 请求。

最适合并行化的函数是那些执行大量 CPU 密集型计算或难以以非阻塞方式实现或耗时的阻塞函数。

更多示例可以在 ./examples 目录中找到。

版本控制

amphp/parallel-functions 遵循与其他所有 amphp 包一样的 semver 语义版本规范。

安全

如果您发现任何与安全相关的问题,请使用私有安全问题报告器而不是使用公开的问题跟踪器。

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 LICENSE