async 키워드
- 비동기 함수를 선언할 때 사용한다.
- 비동기는 멈췄다가 다시 재개 될 수 있는 함수
- 콜뱅방식이 아닌 직접 리턴을 할 수 있다.
- 메인 엑터가 아닐 경우 , 항상 백그라운드 스레드에서 실행된다.
- 비동기 함수내에서 다른 비동기 함수를 호출하면 현재 컨텍스에서 실행됨 , 새로운 컨텍스 생성 x , 취소 전파가 가능
문법
func 함수명 async throws(에러를 발생시키면) -> 리턴 타입 { ... }
await 키워드
- 비동기 함수를 사용할 때 붙혀준다.
- Task와 같은 비동기 context에서 사용할 수 있다.
- potential suspension point 지점이된다.
suspend
- non - blocking 방식
- suspend이란, 쓰레드 제어권을 운영체제를 넘겨 다른 일을 처리할 수 있도록 하는 행위를 말한다.
- 이후 일시중지된 작업은 다시 재개될 때 , 일시 중지 전 스레드와 다른 스레드가 할당될 수 있다.
문법
try(에러를 던진 다면) await 함수명()
'iOS > Swift Concurrency' 카테고리의 다른 글
Task Cancellation (0) | 2024.10.27 |
---|---|
구조적 동시성 (1) (0) | 2024.10.26 |
Continuation (0) | 2024.10.25 |
swift concurrency 등장배경 (0) | 2024.10.24 |
Task (0) | 2024.10.23 |