SW Swift  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Task, отмена и группы задач

Разбирает тему «Task, отмена и группы задач» на практических сценариях: поиск дефектов, сравнение решений и оценка последствий. Вопросы требуют не только узнать конструкцию, но и проследить выполнение, найти причину дефекта, выбрать исправление и оценить пограничный сценарий. Языковые примеры рассчитаны на Swift 6; задания с Apple SDK рассматриваются в контексте современных платформенных контрактов.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 25 вопросов, на работу отведено 70 минут. В каждом задании верен только один вариант. Часть фрагментов намеренно содержит ошибку: определяйте её по коду, а не по внешнему виду ответа. После завершения откроются общий результат, 5 тематических шкал и подробные объяснения.
Вопрос 1 из 25
Проследите типы, изменения состояния и порядок вызовов. Какое описание результата совпадает с кодом? Сосредоточьтесь на следующем: создание задачи и получение её результата.
SwiftЗадачи Task · фрагмент для разбора
func compute17() async -> Int { 5 }
func start17() async -> Int {
    let task = Task { await compute17() * 2 }
    return await task.value
}
Вопрос 2 из 25
Определите не предполагаемое, а фактическое поведение примера «Отмена задач». Сосредоточьтесь на следующем: кооперативная природа отмены.
SwiftОтмена задач · фрагмент для разбора
func loop17() async throws {
    for _ in 0..<10 {
        try Task.checkCancellation()
        await Task.yield()
    }
}
Вопрос 3 из 25
Как поведёт себя программа в этом коротком сценарии, связанном с «Группы задач»? Проверяется структурная область группы и недетерминированный порядок.
SwiftГруппы задач · фрагмент для разбора
func square17(_ x: Int) async -> Int { x * x }
func all17() async -> [Int] {
    await withTaskGroup(of: Int.self) { group in
        for x in 1...3 { group.addTask { await square17(x) } }
        var out: [Int] = []
        for await value in group { out.append(value) }
        return out
    }
}
Вопрос 4 из 25
В этом примере важна одна точная деталь механизма «Структурированная конкурентность». Что действительно произойдёт? Не упускайте из виду следующее: связь времени жизни родителя и дочерней работы.
SwiftСтруктурированная конкурентность · фрагмент для разбора
func child17() async -> Int { 1 }
func parent17() async -> Int {
    async let a = child17()
    return await a
}
Вопрос 5 из 25
Какой итог даст показанный фрагмент, если применять правила Swift буквально, а не угадывать намерение автора? Сосредоточьтесь на следующем: детерминированный сценарий отмены и сбор событий.
SwiftТестирование и диагностика · фрагмент для разбора
actor Probe17 { var events: [String] = []; func add(_ e: String) { events.append(e) } }
func record17(_ probe: Probe17) async { await probe.add("done") }
Вопрос 6 из 25
Какой вывод о типах, владении или порядке выполнения следует из показанного дефекта? Не упускайте из виду следующее: создание задачи и получение её результата.
SwiftЗадачи Task · фрагмент для разбора
func bad17() -> Int {
    let task = Task { 3 }
    return task.value
}
Вопрос 7 из 25
На проверку кода принесли этот фрагмент. Какой диагноз точнее всего объясняет проблему в части «Отмена задач»? Проверяется кооперативная природа отмены.
SwiftОтмена задач · фрагмент для разбора
func endless17() async {
    while true {
        _ = 1 + 1
    }
}
Вопрос 8 из 25
Ожидаемое поведение не совпало с фактическим. В чём первая нарушенная гарантия? Проверяется структурная область группы и недетерминированный порядок.
SwiftГруппы задач · фрагмент для разбора
func broken17() async -> () -> Void {
    await withTaskGroup(of: Int.self) { group in
        { group.addTask { 1 } }
    }
}
Вопрос 9 из 25
Какой вывод о типах, владении или порядке выполнения следует из показанного дефекта? Здесь оценивается связь времени жизни родителя и дочерней работы.
SwiftСтруктурированная конкурентность · фрагмент для разбора
func fire17() {
    Task { try? await Task.sleep(for: .seconds(30)) }
}
Вопрос 10 из 25
Разработчик видит симптом, но ищет первопричину. Какое объяснение выдерживает проверку кодом? Здесь оценивается детерминированный сценарий отмены и сбор событий.
SwiftТестирование и диагностика · фрагмент для разбора
func flaky17() async -> Bool {
    let task = Task { 1 }
    task.cancel()
    return await task.value == 0
}
Вопрос 11 из 25
Что нужно поменять в реализации или сигнатуре, чтобы отрицательный сценарий стал корректным? Проверяется создание задачи и получение её результата.
SwiftЗадачи Task · фрагмент для разбора
func bad17() -> Int {
    let task = Task { 3 }
    return task.value
}
Вопрос 12 из 25
Что следует изменить, чтобы исправить первопричину, а не подогнать ожидаемый результат? Не упускайте из виду следующее: кооперативная природа отмены.
SwiftОтмена задач · фрагмент для разбора
func endless17() async {
    while true {
        _ = 1 + 1
    }
}
Вопрос 13 из 25
Что следует изменить, чтобы исправить первопричину, а не подогнать ожидаемый результат? Важно учесть: структурная область группы и недетерминированный порядок.
SwiftГруппы задач · фрагмент для разбора
func broken17() async -> () -> Void {
    await withTaskGroup(of: Int.self) { group in
        { group.addTask { 1 } }
    }
}
Вопрос 14 из 25
Какое решение одновременно исправляет код и оставляет понятную границу для дальнейших изменений? Сосредоточьтесь на следующем: связь времени жизни родителя и дочерней работы.
SwiftСтруктурированная конкурентность · фрагмент для разбора
func fire17() {
    Task { try? await Task.sleep(for: .seconds(30)) }
}
Вопрос 15 из 25
Что следует изменить, чтобы исправить первопричину, а не подогнать ожидаемый результат? Сосредоточьтесь на следующем: детерминированный сценарий отмены и сбор событий.
SwiftТестирование и диагностика · фрагмент для разбора
func flaky17() async -> Bool {
    let task = Task { 1 }
    task.cancel()
    return await task.value == 0
}
Вопрос 16 из 25
Какой пограничный случай способен изменить вывод, хотя синтаксис останется почти тем же? Сосредоточьтесь на следующем: создание задачи и получение её результата.
Вопрос 17 из 25
Где заканчивается гарантия, продемонстрированная в обычном примере «Отмена задач»? Проверяется кооперативная природа отмены.
Вопрос 18 из 25
Что нужно учесть, прежде чем объявлять найденное правило универсальным? Проверяется структурная область группы и недетерминированный порядок.
Вопрос 19 из 25
Какой отрицательный сценарий лучше всего проверяет предел применимости этого механизма? Важно учесть: связь времени жизни родителя и дочерней работы.
Вопрос 20 из 25
Какой отрицательный сценарий лучше всего проверяет предел применимости этого механизма? Важно учесть: детерминированный сценарий отмены и сбор событий.
Вопрос 21 из 25
Команда выбирает не просто рабочую строку, а устойчивое устройство решения. Какой подход сильнее? Здесь оценивается создание задачи и получение её результата.
Вопрос 22 из 25
Какой инженерный принцип лучше всего подходит для долгосрочного сопровождения части «Отмена задач»? Не упускайте из виду следующее: кооперативная природа отмены.
Вопрос 23 из 25
Какой инженерный принцип лучше всего подходит для долгосрочного сопровождения части «Группы задач»? Не упускайте из виду следующее: структурная область группы и недетерминированный порядок.
Вопрос 24 из 25
Какой инженерный принцип лучше всего подходит для долгосрочного сопровождения части «Структурированная конкурентность»? Важно учесть: связь времени жизни родителя и дочерней работы.
Вопрос 25 из 25
Какое решение уменьшит число скрытых состояний и упростит расследование следующего сбоя? Проверяется детерминированный сценарий отмены и сбор событий.

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу