Управляйте одинаковыми запросами с помощью RxJava

Предположим, у меня есть средство извлечения, которое извлекает изображение по заданной ссылке в отдельном потоке. Изображение будет затем кэшироваться в памяти. Как только изображение уже кэшируется, сборщик не будет повторно извлекать ссылку. Сборщик считается наблюдаемым. Там может быть много подписчиков, которые просят сборщик для изображения. После того, как первый подписчик подпишет сборщик, он будет снимать сеть. Однако, если на подписку приходит второй подписчик, сборщик не должен отправлять еще один запрос, пока он уже получал один. После этого, если выборка заканчивается, оба подписчика получат изображение. Прямо сейчас, если придет третий подписчик, сборщик сразу выдаст изображение.

Как я могу реализовать сценарий выше с подходом RxJava? Я ожидаю использовать какие-то существующие операторы, составлять их гораздо более декларативно и, что самое важное, чтобы избежать накладных расходов на синхронизированные, блокирующие и атомарные вещи.

Ответы на вопрос(1)

Ваш ответ на вопрос