我找不到任何可以表明这两种方式的证据。
我目前每次都在创建新实例并使用自定义解码/编码选项配置它们,并且想知道我是否可以创建一个单例并在每次需要时出售它。
最佳答案
从 JSONDecoder
和 JSONEncoder
的代码来看,它们似乎是线程安全的。
encode()
和 decode()
都使用 JSONSerialization
(自 iOS 7 和 macOS 10.9 以来一直是线程安全的),并且这两种方法都在局部变量中创建自己的私有(private)解码/编码对象。据我所知,没有共享存储空间。
代码可以在这里找到: https://github.com/apple/swift-corelibs-foundation/blob/master/Sources/Foundation/JSONEncoder.swift
关于ios - JSONDecoder 和 JSONEncoder 类是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50257026/