国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關(guān)于多個(gè)進(jìn)程無(wú)法產(chǎn)生隨機(jī)數(shù)問(wèn)題

h8h8
     function getNonceStr($length = 32) 
    {
        $chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
        $str ="";
        for ( $i = 0; $i < $length; $i++ )  {  
            $str .= substr($chars, mt_rand(0, strlen($chars)-1), 1);  
        } 
        return $str;
    }

$consumer->onWorkerStart = function($consumer)
{
    \Workerman\Lib\Timer::add(0.5, function() use ($consumer){
        while(1)
        {           
            echo getNonceStr();         
        }               
    });
};

有一推送項(xiàng)目要產(chǎn)生隨機(jī)數(shù),發(fā)現(xiàn)在多個(gè)進(jìn)程的情況下,每一次產(chǎn)生隨機(jī)數(shù)都是一樣的,,只有$consumer->count = 1才不一樣

4611 4 1
4個(gè)回答

walkor 打賞

我這測(cè)試正常??赡芎拖到y(tǒng)或者環(huán)境有關(guān),還要看mt_rand的底層實(shí)現(xiàn)。
不過(guò)這個(gè)都和workerman無(wú)關(guān),不是workerman的問(wèn)題。

  • 大飯米粒 2019-01-07

    在Linux系統(tǒng)中開(kāi)啟多進(jìn)程會(huì)出現(xiàn)無(wú)法隨機(jī)數(shù),我也剛遇到了這個(gè)問(wèn)題,在找解決方法,Windows中無(wú)此問(wèn)題(應(yīng)該是Windows無(wú)法多進(jìn)程)

xiewen_kevin

老鐵,問(wèn)題找到了嗎?我這也是這種情況,哈哈

  • 暫無(wú)評(píng)論
walkor 打賞

可能是在主進(jìn)程調(diào)用了mt_rand導(dǎo)致的,
子進(jìn)程在onWorkerStart里調(diào)用下mt_srand隨機(jī)播種試下

  • 暫無(wú)評(píng)論
大飯米粒

找到了解決辦法,如果是用rand()取隨機(jī)數(shù),在rand前先執(zhí)行srand(),如果用mt_rand()取隨機(jī)數(shù),就先執(zhí)行mt_srand(),這樣可以保證在Linux下多進(jìn)程取出的隨機(jī)數(shù)不一直重復(fù)。
?
注:srand()或mt_srand()不要用參數(shù),原因不解釋

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??