Task
- Task : 비동기적으로 실행할 수있는 작업 단위
- 동시(Concurrent)에 실행할 수 있는 새로운 비동기 컨텍스트 제공
💡동시성 = 비동기 + 병렬
- Task 인스턴스 생성시 해당 Task 가 수행할 작업을 포함하는 클로저 함께 제공
- 생성과 동시에 실행됨
- Task Group 을 만들어서 하위 작업을 추가하는 형식.
func getUser() async -> Data {
}
func process() async {
let userData = await getUser()
let contents = await decode(data: userData)
print(contents)
}
Task {
await self.process()
}
- async/ await 을 쓰면 가장 바깥은 Task{} 로 감싸야 함
- Task 내 /외 는 별개의 스레드로 동작하며 Task 내에서는 순차적으로 코드가 실행됨
- =>sync code block 내에서 async 코드를 실행할 수 있게 함
출처
https://inuplace.tistory.com/1125