-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GCD API 동작 방식과 필요성에 대해 설명하시오. #20
Comments
동시성 프로그래밍이 필요한 이유
GCDGCD(Grand Central Dispatch)는 멀티 쓰레드 환경에서 작업들이 동시에 이뤄질 수 있도록 도와주는 기술이고, OS가 쓰레드를 관리해준다. GCD는 DispatchQueue라고 불리는 큐로 구성되어있다. DispatchQueue는 작업을 동기 또는 비동기적으로 쓰레드로 보낼 수 있고, 직렬 또는 동시에 쓰레드로 작업을 분배할 수 있다. 보통 다음과 같은 형태의 코드를 작성하게 된다. main, global 또는 custom형태의 큐를 선택할 수 있고, 동기 또는 비동기 방식을 선택할 수 있다. 첫번째 코드 블럭을 해석해보면, "메인 큐로 비동기적으로 작업(task)을 보내라" 라고 해석할 수 있다. DispatchQueue.main.async {
// task
}
DispatchQueue.global.async {
// task
} |
동작방식GCD API는 DispatchQueue를 이용하여 Multi-threading을 지원한다. 앱을 실행하면 DispatchQueue는 Main Queue, Global Queue 이렇게 두 가지 형태로 만들어진다. 먼저
필요성프로그램을 실행하다 보면, 순차적으로 실행했을 때 문제가 되는 경우가 있습니다. 하지만 개발자가 직접적으로 스레드를 관리해주기는 어렵기 때문에, 애플에서 제공하는 GCD API가 필요합니다. GCD API를 사용하면 쉽게 멀티스레딩 처리를 해 줄수 있고, 스레드를 관리하기 위한 코드가 줄어들어 훨씬 깔끔한 코드를 작성할 수 있습니다. 또한 스레드 관리가 용이해집니다. |
우리는 일하는 친구들을 '스레드' 라고 부른다. 그런데, 이 스레드는 '큐' 구조이기 때문에, 할당된 일들은 모두 순서대로 처리된다. GCD : Grand Central Dispatch
DispatchQueue에는 Main, Global, 그리고 Custom queue등이 있다.
|
No description provided.
The text was updated successfully, but these errors were encountered: