- This topic has 2개 답변, 3명 참여, and was last updated 4 years, 4 months 전에 by GangWoon.
-
글쓴이글
-
-
남수참가자
- 글작성 : 13
- 답글작성 : 2
Operation Queue
Concurrent Operation객체를 구현할 필요없이
Operation을 Operation Queue에 제출하기만하면
Concurrent Operation객체를 만들어 줍니다Dispatch Queue
Operation을 하기에는 단순한 코드들 구현할 때 사용
DispatchQueue()처럼
그냥 새로만드는 객체로 만드는 큐는 Serial Queue
Attribute를 줘야 Concurrent로 생성할 수 있어요
쓰레드 개념을 간단하게 설명하자면
Serial vs Concurrent
Serial : 직렬처리
Concurrent : 병렬처리
Async vs Sync
Async : 비동기
Sync : 동기
로 구분되요
Serial인 경우는 직렬이기때문에 앞에 작업이있고 그뒤에 작업이 있다면
앞의 작업이 끝나기전까지는 뒤에작업을 실행 하지않겠죠??
반대로 Concurrent인경우는 병렬이기 때문에 여러가지 작업을 동시에 실행 할 수 있어요
조금이라도 먼저온 작업순으로 바로바로 처리해줄 수 있어요
Async는 비동기에요!
비동기란 제가 작업을 맡기고 그 실행되는동안에 저는 다른 일을 할 수 있는거에요
예를들어, 커피를 주문하고 저는 기다리는 동안 아무것도 못하는게 아니라 다른일을 할 수 있는 그런 느낌이에요
Sync는 반대로 해당 작업이 끝날때까지 기다려야 해요
이 개념들을 보면 약간의 혼동이 올 수 있어요…
음..? 왜 같은데 다르지!!?
Serial과 Concurrent는 스레드 수와 관련 있는 개념이고
Async와 sync는 스레드 위에서의 흐름을 나타내는 거라고 생각해요
그리고 Cocoa Aplication에서는 2개의 Queue를 지원해요
● main
○ Serial queue
○ Bangbang:반드시Bangbang: UI관련 task는 이곳에서 실행
● global
○ Concurrent queue ( global dispatch queue)
○ 동시에 하나이상의 task실행
○ 큐에 추가된 순서대로 시작2020-03-21 오후 6:44 #3195 -
GangWoon참가자
- 글작성 : 5
- 답글작성 : 7
동시성(concurrency) 은 동시에 실행되는 작업을 말하며, 병렬(parallel) 은 하나의 작업을 작은 단위로 나눠서 동시에 실행함을 의미합니다.
자료는 https://docs.oracle.com/cd/E53394_01/pdf/E54803.pdf 21페이지를 참고했습니다.
2020-08-04 오후 10:50 #27951
-
-
글쓴이글
- 답변은 로그인 후 가능합니다.