Guava的ImmutableList.Builder线程安全吗?

Bri*_*ris 11 guava

对于Guava的ImmutableList.Builder有什么线程安全保障?javadocs没有说.

Jar*_*evy 31

虽然Guava Immutable类是线程安全的,但它们的构建者却不是.对于大多数应用程序,只有一个线程将与任何特定的Builder实例交互.

虽然通常不需要记录缺少线程安全性,但是这样的Javadoc可能对Immutable集合构建器有意义.人们可能会惊讶于ImmutableList是线程安全而ImmutableList.Builder不是.


Dim*_*eou 13

如果javadocs中没有提到线程安全性,请不要假设它!

更严重的是,"不".

我也更喜欢ImmutableList的javadocs和朋友包括这样一个明显的,是 - 评论(因此你不必自己承担),因为"显而易见"并非总是如此.就scala.List在前几天我正在讨论,一个不可变的列表,以及一些令人惊讶的问题,如果在线程之间交换不当(通过数据竞争),人们没有想到因为他们在锡上看到"不可变"这个词,加上它们等同于"immutable == thread-safe",因此即使在记录"明显的"线程安全方面时,也要保证安全.