我正在考虑将Gson用于我的项目。在回顾其特性时,出现了一个关于其并发处理的问题。
Gson如何处理其实现中潜在的并发问题?如果多个线程使用getter或setter访问相同的特性,这会导致问题吗?或者这个问题是在图书馆的其他地方解决的?
下面列出了我所指的文件
NonNullElementWrapperList.java
我手动查看了文件,但不知道它在哪里应用。另外,我不知道这个问题目前在哪里处理。
我正在考虑将Gson用于我的项目。在回顾其特性时,出现了一个关于其并发处理的问题。
Gson如何处理其实现中潜在的并发问题?如果多个线程使用getter或setter访问相同的特性,这会导致问题吗?或者这个问题是在图书馆的其他地方解决的?
下面列出了我所指的文件
NonNullElementWrapperList.java
我手动查看了文件,但不知道它在哪里应用。另外,我不知道这个问题目前在哪里处理。
1条答案
按热度按时间olmpazwi1#
我手动查看文件,但不知道它的应用在哪里
NonNullElementWrapperList
是JsonArray.asList()
方法使用的内部类。不能保证它是否线程安全。一般来说,你应该认为所有的Gson类和方法都不是线程安全的,除非它们的文档明确地这么说。
文档目前只保证
Gson
class是线程安全的:Gson示例是线程安全的,因此您可以在多个线程之间自由重用它们。
对于
TypeAdapter
、JsonSerializer
和JsonDeserializer
,文档建议实现应该是线程安全的,但Gson不能强制自定义用户定义实现遵守这一点。