SwiftConcurrency (2) 썸네일형 리스트형 Swift Concurrency II 비동기 함수를 병렬로 호출 await를 사용하여 비동기 함수를 호출하면 한 번에 하나의 코드만 실행 let firstPhoto = await downloadPhoto(named: photoNames[0]) let secondPhoto = await downloadPhoto(named: photoNames[1]) let thirdPhoto = await downloadPhoto(named: photoNames[2]) let photos = [firstPhoto, secondPhoto, thirdPhoto] show(photos) → 이런 경우 downloadPhoto가 비동기 작업이어도 프로퍼티에 값을 넣는 동기 작업이 따르기 때문에 동기적으로 작업이 처리됨 async let firstPhoto = dow.. Swift Concurrency I Coroutine 서브 루틴을 일시 정지하고 재개할 수 있는 프로그래밍 참고하기 좋은 블로그 - Swift Async-Awiat과 Kotlin Coroutine 비교 Swift Concurrency 병렬 프로그래밍과 비동기 코드를 사용하는 프로그램은 한번에 여러 작업을 수행할 수 있음 Swift안에서 Concurrency 모델은 스레드에서 구축하지만 스레드와 직접 상호 작용하지는 않음 → 비동기 함수가 Blocking이 되면 시스템에 맡김 → 비동기 함수가 다시 resume되면 해당 함수가 어느 스레드에서 실행될지는 보장되지 않음 → 비동기 함수가 Blocking 시 실행 중이던 스레드를 포기할 수 있게 되고, 해당 스레드는 다른 비동기 함수를 실행할 수 있음 이 개념은 코루틴(Coroutine) 에서 .. 이전 1 다음