本书未发布

mt_rand 随机数

为了更好的阅读体验,将文档从 Swoole 官方文档 搬运过来。内容比较多,我会慢慢搬运过来,也欢迎大家以提交改进的方式一起帮助我。

Swoole中如果在父进程内调用了mt_rand,不同的子进程内再调用mt_rand返回的结果会是相同的。所以必须在每个子进程内调用mt_srand重新播种。

shufflearray_rand等依赖随机数的 PHP 函数同样会受到影响

mt_rand(0, 1);
//开始
$worker_num = 16;

// fork 进程
for($i = 0; $i < $worker_num; $i++) {
    $process = new swoole_process('child_async', false, 2);
    $pid = $process -> start();
}

//异步执行进程
function child_async(swoole_process $worker) {
    mt_srand();
    echo mt_rand(0, 100).PHP_EOL;
    $worker->exit();
}

本文章首发在 LearnKu.com 网站上。
上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~