Swift Calendar stuct线程安全吗?

时间:2017-08-29 21:29:18

标签: swift

我正在尝试确定swift Calendar结构是否是线程安全的。我发现NSCalendar类是" generally considered to be thread safe"。但我找不到Calendar结构的具体信息。

我的目标是使用日历扩展Date结构以用于扩展方法,例如昨天,明天等。我不想在每次调用时创建一个新的Calendar实例。

3 个答案:

答案 0 :(得分:0)

CalendarNSCalendar的替代品,实际上只是Apple平台上NSCalendar的包装,所以如果NSCalendar是线程的话 - 安全,我预计Calendar也是如此。

答案 1 :(得分:0)

如果查看Calendar's source code,您将无法看到任何使其线程安全的代码。所以我认为不是,不同的主题会看到Calendar对象字段的不同版本。

答案 2 :(得分:0)

否,它不是线程安全的(至少在Linux上运行时)。不知道达尔文的实现方式是否不同。 https://bugs.swift.org/browse/SR-11323

如果有人感到好奇,可以在这里进行实现:https://github.com/apple/swift-corelibs-foundation/blob/master/CoreFoundation/Locale.subproj/CFCalendar.c

在很多地方,“ calendar-> _ cal”(在并发调用之间共享)被修改并用作临时存储。

相关问题