Проблема использования CompletableFuture в нескольких потоках и её решение
4 мин
В Java 8 появился новый класс CompletableFuture, который позволяет удобно писать асинхронный код.При использовании
CompletableFuture из нескольких потоков я столкнулся с его неочевидным поведением, а именно с тем, что callbacks на нём могут выполнятся совсем не в тех потоках, как ожидалось. Об этом и о том, как мне удалось решить проблему — я и расскажу в этой статье.Мною разрабатывался асинхронный, неблокирующийся однопоточный клиент к серверу, который использовал потоконебезопасные структуры данных. Тесты проходили без проблем, но benchmarks иногда падали c
ConcurrentModificationException на внутренних структурах однопоточного клиента.
Совсем недавно компания Mail.ru разработала открытый стандарт OMF.
Теперь BestPersons.ru 



