2
A
回答
3
是,arc4random
,arc4random_uniform
,arc4random_buf
,arc4random_stir
和arc4random_addrandom
是线程安全的。
您可以在source code中看到这一点,并且也得到了Apple开发人员关系人员的确认(但目前我找不到该链接)。
相关问题
- 1. 是否是setlocale线程安全函数?
- 2. PHP函数error_log()是否安全使用?
- 3. 内部函数声明是否安全?
- 4. 删除history.back()函数是否安全?
- 5. Python 3的input()函数是否安全?
- 6. PL/SQL函数dbms_lock.sleep是否安全?
- 7. 使用“不安全”线程函数是否安全?
- 8. ConcurrentHashMap是否完全安全?
- 9. C++模板函数是否是线程安全的?
- 10. 列表 - arc4random
- 11. Context.MODE_PRIVATE是否安全?
- 12. const_cast是否安全?
- 13. BrowserID是否安全?
- 14. Locale.setDefault()是否安全?
- 15. Titanium.App.Properties是否安全
- 16. AfxBeginThread是否安全?
- 17. signed_request是否安全?
- 18. PhoneGap是否安全?
- 19. Redux是否安全?
- 20. session_set_cookie_params是否安全?
- 21. 将“太多”参数传递给外部函数是否安全?
- 22. 使用函数访问数据库值是否安全?
- 23. GSON是否执行安全序列化?
- 24. java.util.Vector序列化是否线程安全?
- 25. 操作系统漏洞是否会影响数据库安全?
- 26. 序列化和反序列化$ _POST数组是否安全?
- 27. 是否有最大数量的“安全”数据来散列?
- 28. 调用函数来初始化ctor列表中的类是否安全?
- 29. 将nullptr分配给函数指针变量是否安全?
- 30. .NET中的这个函数是否安全共享?
您的线程安全担忧是什么?那是不会线程安全的问题呢?字节可能会混合?这将如何导致结果不那么随意? – zaph
@zaph:种族情况导致*未定义的行为*,其中包括各种奇怪的魔法。我能想象的一种情况是两个线程获得完全相同的随机数。如果这是AES-CTR的初始化矢量,那完全破坏安全保证。 –
@zaph如果它不是线程安全的,不仅可以是未定义的行为,从多个线程同时调用非线程安全的PRNG,但它也可能严重扰乱其内部状态并破坏所有未来结果的随机性。另外,如果PRNG没有受到这个影响,它可能仍然会为同时调用返回相同的结果,例如,这会完全搞乱任何类型的多线程蒙特卡洛近似...(尽管在这种使用中它通常更好有一个单独的PRNG实例,每个实例的接收方式不同,以避免需要同步。) – Arkku