首页 > 解决方案 > c中的线程安全随机数生成器

问题描述

c标准是否提供了一个线程安全的随机数生成器,而不是使用全局状态,生成器使用和修改提供的状态缓冲区?我熟悉 drand48_r 和 rand_r 但在文档中说 rand_r 是一个弱随机数生成器,而 drand48_r 已过时。什么是好的线程安全随机数生成器?我需要一个用于 double 类型,一个用于 int/long 类型。如果它是便携式的,那就太好了。

标签: c

解决方案


C17 定义了随机函数rand()(7.22.2.1) 和srand()(7.22.2.2)。两者都不需要以避免数据竞争。


推荐阅读