首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PRNG需要线程安全吗?

PRNG需要线程安全吗?
EN

Stack Overflow用户
提问于 2009-03-05 20:13:25
回答 3查看 967关注 0票数 4

只要并发调用不导致seg‘s或返回相同的值,当这些错误的主要影响是不可预知的结果时,防止PRNGs中的争用条件和数据损坏的原因是什么?

编辑:是否有任何PRNG不会在竞争条件和数据损坏的情况下遭受损失?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-05 21:32:10

PRNG是精心构建的工具--坦率地说,如果争用条件和线程错误是一个很好的PRNG,那么实现就是这样写的。

添加线程错误以增加随机性的问题是,这是对生成器的一个未经研究的更改。已经对现有的安全算法和实现进行了详尽的测试;如果您想尝试一个不安全的变体,则需要进行统计分析,以表明它至少与普通PRNG一样随机。

票数 3
EN

Stack Overflow用户

发布于 2009-03-05 21:42:24

当这些错误的主要影响是不可预测的结果,而这就是PRNG的要点?

“随机”与不可预测的不一样--如果你想要真正的随机数,随机指的是一个非常重要的分布,如果你想要真正的随机数。如果您的随机数在任何方面都是可预测的,则可能是安全问题,或者至少是程序错误。

票数 6
EN

Stack Overflow用户

发布于 2014-11-27 00:18:23

它通常会使它们不那么确定(如果你依赖于它们的确定性(许多人都这样做),并且可能会或不可能减少它们的伪随机性,这取决于它们的具体实现细节和硬件工作方式的微妙性。

但是通常情况下,编写多线程应用程序的人会在TLS (线程本地存储)中声明它们的PRNG状态。这样并不重要,每个线程都有自己的PRNG,除非您有意创建它们,否则不会发生种族冲突。不管怎么说,在PRNG代码中没有。这是无锁和或多或少的全面性能(取决于所使用的TLS实现)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/616434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档