Có cùng "trình tạo số ngẫu nhiên toàn cầu" được chia sẻ trên tất cả các chuỗi hoặc mỗi chuỗi có riêng không?Trình tạo số ngẫu nhiên trong Haskell thread-safe?
Nếu một tài khoản được chia sẻ, làm cách nào tôi có thể đảm bảo an toàn cho luồng? Cách tiếp cận sử dụng getStdGen và setStdGen được mô tả trong "Monads" chapter of Real World Haskell không an toàn.
Nếu mỗi luồng có một trình tạo độc lập, các máy phát điện cho hai luồng bắt đầu liên tiếp nhanh có hạt giống khác nhau không? (Chẳng hạn, họ sẽ không, nếu hạt giống là thời gian tính bằng giây, nhưng mili giây có thể là OK. Tôi không thấy cách lấy thời gian với độ phân giải mili giây từ Data.Time.)
Lưu ý rằng dưới mui xe, điều này sử dụng kỹ thuật tương tự như câu trả lời của [FUZxxl] (http://stackoverflow.com/q/7153255/7153364#7153364); ['newStdGen''s documentation] (http://hackage.haskell.org/packages/archive/random/latest/doc/html/System-Random.html#v:newStdGen) nói rằng" [it] [a] pplies được chia thành trình tạo ngẫu nhiên toàn cầu hiện tại, cập nhật nó với một trong các kết quả và trả về kết quả còn lại, và việc thực thi nó chỉ đơn giản là ['atomicModifyIORef theStdGen split'] (http://hackage.haskell.org/packages/archive/ ngẫu nhiên/mới nhất/doc/html/src/System-Random.html # newStdGen). –