💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 9 из 25
В контракте темы «Композиция Future» удалённый вызов стал иногда завершаться после тайм-аута и пересекаться с повторной попыткой. Какой вывод одновременно сохраняет правило и учитывает его границу?
T_{par}\approx\max(T_a,T_b)
Оставить в контракте правило «`map` преобразует успешный результат, `flatMap` последовательно запускает зависимую асинхронную операцию, а for-comprehension объединяет их»; проверяемое ограничение — «создание второго `Future` заранее делает операции параллельными, а создание внутри `flatMap` — последовательными; путаница меняет нагрузку и время».
Оставить в контракте правило «читаемая асинхронная цепочка сохраняет тип ошибки и не смешивает запуск, ожидание, преобразование и побочные эффекты в одном выражении»; проверяемое ограничение — «`Await.result` внутри серверного пути блокирует поток и может вызвать истощение пула или взаимную задержку».
Оставить в контракте правило «`map` преобразует успешный результат, `flatMap` последовательно запускает зависимую асинхронную операцию, а for-comprehension объединяет их»; проверяемое ограничение — «успешная обработка одного значения подтверждает совместимость всех вариантов модели».
Оставить в контракте правило «параллельность `Future` определяется моментом запуска и ресурсами `ExecutionContext`, а не только синтаксисом for-comprehension»; проверяемое ограничение — «создание второго `Future` заранее делает операции параллельными, а создание внутри `flatMap` — последовательными; путаница меняет нагрузку и время».
Оставить в контракте правило «`map` преобразует успешный результат, `flatMap` последовательно запускает зависимую асинхронную операцию, а for-comprehension объединяет их»; проверяемое ограничение — «последовательное создание futures внутри генераторов лишает программу параллелизма, хотя код выглядит асинхронным».
Вопрос 19 из 25
В контракте темы «Параллельность» условия эксплуатации изменились, но синтаксис остался прежним. Что теперь важно удержать вместе?
`ExecutionContext` решает, где исполняются обработчики продолжения и задачи `Future`; блокирующая работа способна занять его потоки. Отдельная граница — последовательное создание futures внутри генераторов лишает программу параллелизма, хотя код выглядит асинхронным.
`Map` преобразует успешный результат, `flatMap` последовательно запускает зависимую асинхронную операцию, а for-comprehension объединяет их. Отдельная граница — `Await.result` внутри серверного пути блокирует поток и может вызвать истощение пула или взаимную задержку.
Параллельность `Future` определяется моментом запуска и ресурсами `ExecutionContext`, а не только синтаксисом for-comprehension. Отдельная граница — создание второго `Future` заранее делает операции параллельными, а создание внутри `flatMap` — последовательными; путаница меняет нагрузку и время.
Параллельность `Future` определяется моментом запуска и ресурсами `ExecutionContext`, а не только синтаксисом for-comprehension. Отдельная граница — прохождение happy path исключает ошибки сериализации на старых и неполных данных.
Параллельность `Future` определяется моментом запуска и ресурсами `ExecutionContext`, а не только синтаксисом for-comprehension. Отдельная граница — последовательное создание futures внутри генераторов лишает программу параллелизма, хотя код выглядит асинхронным.
Вопрос 24 из 25
В контракте темы «Читаемость решения» какое решение не превращает частный успешный случай в общее обещание?
Читаемая асинхронная цепочка сохраняет тип ошибки и не смешивает запуск, ожидание, преобразование и побочные эффекты в одном выражении. Учитывать границу: `Await.result` внутри серверного пути блокирует поток и может вызвать истощение пула или взаимную задержку.
`ExecutionContext` решает, где исполняются обработчики продолжения и задачи `Future`; блокирующая работа способна занять его потоки. Учитывать границу: `Await.result` внутри серверного пути блокирует поток и может вызвать истощение пула или взаимную задержку.
`Map` преобразует успешный результат, `flatMap` последовательно запускает зависимую асинхронную операцию, а for-comprehension объединяет их. Учитывать границу: последовательное создание futures внутри генераторов лишает программу параллелизма, хотя код выглядит асинхронным.
Читаемая асинхронная цепочка сохраняет тип ошибки и не смешивает запуск, ожидание, преобразование и побочные эффекты в одном выражении. Учитывать границу: использование общего пула для долгого блокирующего ввода-вывода задерживает несвязанные вычисления и таймеры.
Читаемая асинхронная цепочка сохраняет тип ошибки и не смешивает запуск, ожидание, преобразование и побочные эффекты в одном выражении. Учитывать границу: если локальный вызов успешен, распределённые повторы и частичные отказы не меняют вывод.