我有幾個線程都運行相同的功能。在每種情況下,它們都會多次生成不同的隨機數。我們試圖通過將srand(time(0))函數放在開頭來執行此操作,但是似乎它們都獲得了相同的數字。我們是否需要srand(time(0))每個程序僅調用一次,即在main(例如)開始,在多次調用的每個函數的開始處調用,還是其他?
3 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
如果同時啟動所有線程,則每個線程發送到srand的時間可能相同。由于它們都具有相同的種子,因此它們都返回相同的序列。嘗試使用其他內容,例如來自局部變量的內存地址。
- 3 回答
- 0 關注
- 615 瀏覽
添加回答
舉報
0/150
提交
取消