JSONDecoder和JSONEncoder类是线程安全的吗?

dam*_*ter 5 thread-safety ios swift

我找不到任何证据表明这两种方式。

我当前每次都在创建新实例,并使用自定义解码/编码选项对其进行配置,并且想知道是否可以创建单例并在每次需要时出售它。

Bjø*_*uud 6

从代码来看JSONDecoder,JSONEncoder它们似乎是线程安全的。

无论encode()和decode()使用JSONSerialization(这一直是线程安全的,因为iOS的7和MacOS 10.9),并且这两种方法创建的局部变量自己的私人解码/编码对象。据我所知,没有共享存储。

代码可以在这里找到:https : //github.com/apple/swift-corelibs-foundation/blob/master/Sources/Foundation/JSONEncoder.swift