티스토리 뷰
728x90
GCD 공부를 하다가
아니 async는 일을 기다리지 않고 여러개 처리를 하는거고
Concurrent는 동시성인데 같은뜻 아닌가?
의문이 생겼습니다.
Thread1 , Thread2 가 있다고 가정
비동기(Async)
Thread1작업을 Thread2에서 하도록 시킨 후,
해당 작업이 끝나는걸 기다리지 않고 다음일을 이어 진행한다.
동기(Sync)
Thread1작업을 Thread2에서 하도록 시킨 후,
해당 작업이 끝날때 까지 기다렸다가 다음일을 진행한다.
Thread1, Thread2, Thread3, Thread4 가 있고
대기열(queue)에 대기중인 작업이 있다고 가정
Serial queue (직렬 큐)
큐(Queue)에 등록된 작업을 한번에 하나씩 처리합니다.
항상 순서가 보장 됩니다.
Concurrent queue (동시 큐)
큐(Queue)에 등록된 작업을 동시에 수행할 수 있게 합니다.
처음등록된 작업이 끝나지 않아도 다음작업을 다음 Thread에 할당해서 동시에 처리되게 합니다.
등록된 작업이 끝나는 대로 출력을 하기 때문에 순서보장은 되지 않습니다.
결정적으로 둘의 차이는
Queue의 유무에 따라 다르며,
대기열(queue)에 있던 작업들이 여러 thread로 나뉘어지면?
--> concurrent (동시)
대기열(queue)에 있던 작업들이 하나의 thread로만 보내지면?
--> serial (직렬)
어떤 Thread에 있는 작업을 다른 Thread로 보내 작업을 시키는데 기다린다?
--> sync (동기)
안기다린다?
--> async (비동기)
728x90
'iOS' 카테고리의 다른 글
[iOS] Delegate로 ViewController간 데이터 전달 (코드작업) (0) | 2022.03.18 |
---|---|
[iOS] CollectionView - Empty state (데이터가 없을시 보여줄 화면) (0) | 2022.03.16 |
[iOS] 네비게이션바 뒤로가기 버튼 커스텀 - navigationBar back button custom (0) | 2022.03.11 |
[Swift] 프로퍼티 (Properties) - Observers, Type properties (2/3) (0) | 2022.03.06 |
[Swift] 프로퍼티 - Property Wrapper (3/3) (0) | 2022.03.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Swift Leetcode
- ios
- RIBs tutorial
- swift 고차함수
- Swift joined()
- Class
- Swift RIBs
- 2023년 회고
- removeLast()
- swift property
- Combine: Asynchronous Programming with Swift
- iOS error
- swift programmers
- swift reduce
- CS 네트워크
- Swift 프로퍼티
- 원티드 프리온보딩
- Swift 내림차순
- Swift ModernRIBs
- Swift joined
- Swift Error Handling
- swift protocol
- Swift
- Swift final
- Swift 알고리즘
- swift (programmers)
- RTCCameraVideoCapturer
- Swift init
- Swift 프로그래머스
- Swift inout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함