Используется ли один и тот же «глобальный генератор случайных чисел» для всех потоков или каждый поток получает свой собственный?
Если один из них является общим, как я могу обеспечить безопасность потоков? Подход, использующий getStdGen и setStdGen , описанный в главе «Монады» Real World Haskell , не выглядит безопасным.
Если каждый поток имеет независимый генератор, будут ли генераторы для двух потоков, запускаемых в быстрой последовательности, иметь разные начальные числа? (Они не будут, например, если начальное значение - это время в секундах, но миллисекунды могут быть нормальными. Я не понимаю, как получить время с разрешением миллисекунды из Data.Time.)