일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Hitit
- Svelte
- 비동기
- data structure
- 리액트
- TDD
- IOS
- 스위프트
- 자스민
- 이종호
- react
- 계명대 이종호
- 스벨트
- jest
- 힛잇
- HTML
- queue
- 계명대
- 개발
- 자료구조
- 자바스크립트
- 자바스크립트 자료구조
- javascript
- 리액트 예제
- SWIFT
- 호키도키
- hokidoki
- 개발자
- 호키스
- hokeys
Archives
- Today
- Total
Dog foot print
[IOS] Async & Sync 본문
Async 비동기
Async
는 어떤 작업이 끝나기를 기다리지 않고, 다음 작업이 실행되는 것을 의미한다. 아래의 코드를 보도록 하자 .
import Foundation
print("1")
DispatchQueue.global().async(){
print("2")
}
print("3")
위의 코드는 순차적으로 실행되지 않는다. 이것을 그림으로 보면 다음과 같다.
DispatchQueue.global().async
의 코드 역할은 블락에 있는 코드를 전달하는 것으로 이 코드의 역할은 마무리 된다. 그러므로 2번째 프린트 문을 기다리지 않고 print(3)이 출력된다.
Sync 동기
Sync
는 작업을 다른쓰레드에 시키고 그 일이 종료될 때 까지 기다린다는 의미이다.
아래의 코드를 보자
print("1")
DispatchQueue.global().sync(){
print("2")
}
print("3")
이전 과는 다르게 1 , 2 , 3 이 차례로 출력된다. 아래의 그림을 보며 이해를 돕자.
프린트 (1)이 실행되고 작업을 다른 쓰레드에게 sync
메서드를 사용하여 전달한다. 이후 메인쓰레드에서는 해당 작업이 끝날 때 까지 기다리다 다음 작업을 실행한다.
반응형
'IOS > Swift' 카테고리의 다른 글
[SWIFT] Dispatch Queue의 종류 (0) | 2021.09.26 |
---|---|
[IOS] Serial & Concurrent Queue (0) | 2021.09.23 |
[IOS] 쓰레드와 동시작업 (0) | 2021.09.22 |
[Swift] 동기적 작업과 비동기적 작업 (0) | 2021.09.20 |
[SWIFT] protocol (0) | 2021.07.21 |
Comments