В каком порядке for await выдаёт результаты дочерних задач TaskGroup?
База Hintsage
Программирование Swift
Язык Swift и разработка приложений в экосистеме Apple.
Темы раздела
Выберите подраздел
- 0 вопросов
Общие вопросы
Смешанные вопросы по Swift.
Открыть раздел - 50 вопросов
Swift Core
Типы, функции, структуры, классы и базовая семантика.
Открыть раздел - 49 вопросов
Optionals и система типов
Optionals, value/reference semantics, casting и pattern matching.
Открыть раздел - 50 вопросов
Протоколы и generics
Protocols, extensions, associated types и generic constraints.
Открыть раздел - 50 вопросов
Коллекции и функциональный стиль
Collections, closures, map/filter/reduce и sequences.
Открыть раздел - 50 вопросов
ARC и память
ARC, reference cycles, weak/unowned и время жизни объектов.
Открыть раздел - 50 вопросов
Конкурентность
async/await, actors, tasks и безопасность данных.
Открыть раздел - 2 вопроса
Обработка ошибок
throws, Result, defer и моделирование ошибок.
Открыть раздел
Практика
Вопросы: Программирование Swift
В чём практическое отличие withCheckedContinuation от withUnsafeContinuation при адаптации callback API?
Практическая ситуация: родительская задача Swift отменена во время выполнения дочерней — какое изменение состояния дочерней задачи происходит автоматически?
За счёт чего actor предотвращает одновременное выполнение изолированных участков на разных задачах?
Разберите ограничение: почему actor не может реализовать синхронное требование протокола методом, читающим его изолированное состояние?
При объявлении ссылочного типа как @unchecked Sendable какую гарантию безопасности разработчик берёт на себя?
В цикле async-задачи регулярно вызывают Task.yield(): какой гарантии это не даёт?
В синхронном не изолированном коде вызывается синхронный метод, помеченный @MainActor. Перейдёт ли Swift автоматически на главный актор?
При выходе из области withTaskGroup все дочерние задачи уже завершены?
Объясните, почему вызов async-функции сам по себе не запускает новую задачу.
Как async-обёртка над callback API должна передать отмену родительской задачи в незавершённую операцию?
Какую гарантию безопасности данных теряет свойство actor после объявления nonisolated(unsafe)?
Разберите ошибку в адаптере callback API: какое нарушение контракта конкурентности произойдёт при выполнении этого кода?
func load() async -> String {
await withCheckedContinuation { continuation in
LegacyAPI.fetch { value in
continuation.resume(returning: value)
continuation.resume(returning: value + "!")
}
}
}
enum LegacyAPI {
static func fetch(_ completion: @escaping (String) -> Void) {
completion("ok")
completion("again")
}
}
Объясните механизм: зачем вызову синхронного метода actor нужен await?
Высокоприоритетная задача ожидает завершения низкоприоритетной: какое изменение приоритета может произойти у ожидаемой задачи?
Каким образом параметр isolated меняет изоляцию функции, принимающей actor?
Разбор ошибки: почему Swift запрещает параллельным задачам напрямую изменять одну локальную переменную?
Объясните механизм, из-за которого синхронная блокирующая операция внутри async-задачи может остановить прогресс других задач.
При запуске Task.detached из дочерней задачи какое поведение task-local значения нужно ожидать?
Представьте не изолированную async-функцию, начавшуюся на главном потоке: обязана ли она продолжить выполнение после await на том же потоке?
Показано 21–40 из 301