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

时间:2018-05-09 15:28:44

标签: ios swift thread-safety

我找不到任何可能暗示任何方式的证据。

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

1 个答案:

答案 0 :(得分:1)

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

encode()decode()都使用JSONSerialization(自iOS 7和macOS 10.9起它是线程安全的),并且这两种方法都在局部变量中创建自己的私有解码/编码对象。据我所知,没有共享存储。

代码可以在这里找到: https://github.com/apple/swift/blob/master/stdlib/public/SDK/Foundation/JSONEncoder.swift