amphp / parallel-functions
并行处理变得简单。
v2.0.0
2023-11-25 01:01 UTC
Requires
- php: >=8.1
- amphp/amp: ^3
- amphp/parallel: ^2.2.3
- amphp/serialization: ^1
- amphp/sync: ^2.1
- laravel/serializable-closure: ^1.3
Requires (Dev)
- amphp/php-cs-fixer-config: ^2
- amphp/phpunit-util: ^3
- phpunit/phpunit: ^9.5.11
- psalm/phar: ^5.15
README
AMPHP 是一个为 PHP 设计的事件驱动库集合,考虑到了纤程和并发。 amphp/parallel-functions
提供了一个实用函数,该函数将可调用的函数包装到另一个可调用的函数中,该函数将在另一个进程或线程中执行。可调用对象或闭包内的所有数据都必须是可序列化的。
请参阅 amphp/parallel
中的 Worker
和 Task
接口,以获取更灵活和可定制的并行执行任务的 API。
安装
此包可以作为 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
。