Что является гарантиями потокобезопасности ImmutableList Гуавы. Разработчик? javadocs не говорят.
В то время как неизменяемые классы Guava являются потокобезопасными, их построители - нет. Для большинства приложений только один поток будет взаимодействовать с любым конкретным экземпляром Builder.
Хотя отсутствие безопасности потоков обычно не требуется документировать, такая документация Javadoc может иметь смысл для разработчиков неизменяемых коллекций. Люди могут быть удивлены тем, что ImmutableList является потокобезопасным, а ImmutableList.Builder - нет.
Если потокобезопасность не упомянута в javadocs, не предполагайте ее!
Более серьезно, "нет".
Я бы также предпочел, чтобы javadocs ImmutableList и друзей включали такое - довольно очевидное, да - замечание (чтобы вам не приходилось предполагать это самим), потому что "очевидное" не всегда верно. Буквально на днях я обсуждал scala.List
, неизменяемый список, и некоторые удивительные проблемы, которые он может вызвать при неправильном обмене между потоками (через гонку данных), о которых люди не подумали, потому что они видят слово "неизменяемый" на жести, плюс они приравнивают "неизменяемый == потокобезопасный", поэтому стоит подстраховаться даже при документировании "очевидных" аспектов потокобезопасности.