c - c中的线程安全随机数生成器
问题描述
c标准是否提供了一个线程安全的随机数生成器,而不是使用全局状态,生成器使用和修改提供的状态缓冲区?我熟悉 drand48_r 和 rand_r 但在文档中说 rand_r 是一个弱随机数生成器,而 drand48_r 已过时。什么是好的线程安全随机数生成器?我需要一个用于 double 类型,一个用于 int/long 类型。如果它是便携式的,那就太好了。
解决方案
C17 定义了随机函数rand()
(7.22.2.1) 和srand()
(7.22.2.2)。两者都不需要以避免数据竞争。
推荐阅读
- python - 在 TestCase 执行期间 django.db.connection.cursor() SQL 查询从主数据库返回数据,而不是从测试数据库返回数据
- javascript - 如何访问多维数组的内容?
- here-api - 来自 HERE 自动建议端点的意外响应数据
- apache - .htaccess 复杂的重写规则部分工作
- javascript - 渲染 JSX.Element 数组或 HTMLElement React Typescript
- caching - 如何缓存天气预报数据?
- angular - 为什么页面链接在 Cordova Angular 中不起作用?
- java - 即使进一步引用超出范围的引用,Java 垃圾收集器也会收集吗?
- spring - 将 Jetty 中的 Servlet holder 配置为 Spring boot embdeed server
- corretto - Amazon Corretto 8 支持哪些版本的操作系统和/或其组件?