0
我想讓一個變量(屬於一個進程)得到一個新的隨機值,每次新進程啓動時。Linux中的進程:讓每個子進程進入休眠狀態隨機秒數
我需要這個隨機世代,使每個進程創建睡眠的隨機數秒。在程序開始時,我使用了 srand(time(NULL))
,並且在該程序運行的功能中我使用了
int sleeptime = rand() % 16 + 5; //that's because I need values from 5 to 20
。
我試圖實現這樣的事情,但我看到,對於每個過程變量的值是相同的。
我認爲如果我把srand(..)作爲當前時間的參數(以毫秒爲單位),我會得到隨機值。問題是我沒有找到任何有關這方面的信息。在不同頁面上建議的唯一一件事是衆所周知的:srand(time(NULL));
(其中time(NULL)以秒爲單位返回當前時間)。
你可以,請告訴我一些方法來實現這一點?先謝謝你。
由於所有的過程在同一時間開始,他們很可能都調用'srand'具有相同的時間,因此得到相同的隨機數(S)從'rand'回來。 'srand'你需要更好的隨機化來源。 –
在這裏我找到了一個解決方案: http://stackoverflow.com/questions/8623131/why-is-rand-not-so-random-after-fork –