gpt4 book ai didi

android - memcpy()/mktime() 在 iOS 和 Android 上是线程安全的吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:09 28 4
gpt4 key购买 nike

我有一个 C 库,我正在交叉编译以在 Android 和 iOS 应用中使用。

它利用了 memcpy()mktime() 所以我想知道这些函数在多线程环境中使用时是否隐式线程安全。

使用现代 Xcode 编译的 iOS 应用程序和使用现代 Android NDK 编译的 Android 库使用基于 LLVM 的 clang 编译器。

我已经审阅了以下问题,但无法找到明确的答案:

最佳答案

POSIX 要求其标准化的所有函数都是线程安全的,除了相对较短的函数列表之外。 memcpy()mktime() 都包含在 POSIX 中,并且都不在异常列表中,因此 POSIX 要求它们是线程安全的(但请继续阅读)。

但是请注意,这不是所用编译器的问题,而是支持您的应用程序的 C 库的问题。我记得 Apple 的 C 库在某些方面不符合规范。尽管如此,从线程安全的角度来看,memcpy()mktime() 并没有什么特别之处使它们具有固有的风险。也就是说,没有理由期望他们访问任何共享数据,除了通过他们的参数提供给他们的任何数据

还有问题。您可以依赖于 memcpy()mktime() 而不是在内部依赖静态数据,但是 POSIX 对线程安全的要求不会扩展到如中所述的工作您通过选择参数创建的数据竞赛的面貌。因此,例如,如果两个不同的线程调用 memcpy(),并且一个调用的目标区域与另一个调用的源区域或目标区域重叠,那么您需要在线程之间进行某种形式的同步。

关于android - memcpy()/mktime() 在 iOS 和 Android 上是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51156660/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com