Задачи на корутины в Kotlin. Часть 3
Реализуйте паттерн "Producer-Consumer" с использованием Channel и нескольких потребителей, обрабатывающих данные с разной скоростью.
Создайте пул корутин с ограничением одновременных задач с помощью Semaphore на 5 параллельных исполнений.
Реализуйте кэширование результатов асинхронных вычислений с помощью ConcurrentHashMap и повторного использования незавершенных Deferred.
Создайте цепочку обработки ошибок с перезапуском корутин при определенных типах исключений с помощью retry с экспоненциальной задержкой.
Реализуйте распределенную обработку задач с использованием нескольких CoroutineScope с разными диспетчерами и координируйте их завершение.
Создайте асинхронный кэш с TTL (временем жизни) для результатов вычислений, автоматически инвалидирующий устаревшие данные.
Реализуйте конкурентный ограничитель скорости (rate limiter) с помощью Semaphore и корутин, позволяющий не более 10 запросов в секунду.
Создайте систему обработки транзакций с откатом изменений при ошибке в любой из параллельно выполняемых корутин.
Реализуйте асинхронный пайплайн обработки данных с несколькими стадиями через Channel с буферизацией и обработкой backpressure.
Создайте распределенный счетчик с атомарными операциями используя Mutex и корутины для конкурентного доступа из множества потоков.