rapttor/threads

Threads 是一个强大且用户友好的 PHP 库,旨在简化 PHP 应用程序中的并行处理。

dev-master 2024-07-07 21:58 UTC

This package is auto-updated.

Last update: 2024-08-31 15:12:10 UTC


README

Threads 是一个强大且用户友好的 PHP 库,旨在简化 PHP 应用程序中的并行处理。通过将复杂的线程功能抽象为简单易用的函数,Threads 允许开发者以最小的努力提升应用程序的性能和效率。

我们鼓励您将参数作为键值数组传递给方法。使用描述性键并提供[$defaults],以避免需要文档/手册。

安装

composer require rapttor/threads

可能需要在 composer.json 中添加

"minimum-stability": "dev", "prefer-stable": true,

特性

  • PSR-4 自动加载兼容结构
  • 使用 PHPUnit 进行单元测试
  • 全面的指南和教程
  • 易于在任何框架或纯 PHP 文件中使用

我鼓励您在此 README 文件上添加更多信息,而不是让它保持原样。有关更多信息,请参阅 rapttor.com

许可证(可在单独的文件中找到)

MIT 许可证

示例

<?php 
// composer require rapttor/threads
require_once("./vendor/autoload.php");

\RapTToR\Threads::run(array(
    "process" => function ($data = false) {
        for ($i = 0; $i < 3; $i++) {
            echo "A $i" . PHP_EOL;
            sleep(1);
        }
    }
));


\RapTToR\Threads::run(array(
    "process" => function ($data = false) {
        for ($i = 0; $i < 3; $i++) {
            echo "BB $i" . PHP_EOL;
            sleep(2);
        }
        return "BB RUN DONE; " . PHP_EOL;
    },
    "response" => function ($data) {
        var_dump('BB response: ', $data);
    }
));

// if you would like to wait...
// pcntl_wait($status);
echo "app done.";

测试输出

main process pid = N0 
~ (back to prompt...)
starting process: N1
starting process: N2
app done.
string(7) "run A: "
bool(false)
A 0
string(7) "run B: "
bool(false)
BB 0
A 1
BB 1
A 2
N1 process finished
N2 process finished
BB 2
N0 process finished