mt_rand随机数
最后更新于:2022-04-02 06:16:50
# mt\_rand随机数
在`Swoole`中如果在父进程内调用了`mt_rand`,不同的子进程内再调用`mt_rand`返回的结果会是相同的。所以必须在每个子进程内调用`mt_srand`重新播种。
> `shuffle`和`array_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();
}
~~~
';