坚持
  • 微信

当前位置:首页 > 后端技术 > SWOOLE >

进程中随机函数的影响

作者:管理员 时间:2022-12-03 阅读数: 3551人阅读

    主进程使用过随机数发生器,子进程内rand 返回的结果是相同的

    使用随机数发生器的西数有 rand、 srand、shuffle、array_ rand

<?php
    $workerNum = 3 ;
    //stand();
    //mt_rand(1,10);
    //rand(1,10);
    //$arr = [1,2,3,4];
    //shuffle($arr);
    //array_rand($arr);
    for($i = 0; $i < $workerNum; $i++) {
        $process = new Swoole\Process("abc");
        $process-›start();
    }
    function abc(Swoole\Process $process) {
        //stand();
        echo PHP_EOL. rand(0, 10) . PHP_EOL;
        $process-›exit();
    }
    sleep(1);

    解决办法:

    1.主进程内不使用随机数西数。

    2.在子进程内使用 srand等随机函数重新设置。