GCD 2

[iOS/GCD] 3. GCD의 주의사항

주의해야 하는 사항 1. UI 관련한 작업은 반드시 메인 스레드로 보내줘야한다. (DispatchQueue.main.async) DispatchQueue.global().async { // 네트워크 통신 (데이터 다운로드) DispatchQueue.main.async { // UI와 관련된 작업 } } 2. 비동기 처리를 하는 함수에서는 return 문으로 반환하면 비동기적 실행으로 인해 nil을 return하므로, 탈출 클로저를 사용하여 결과값을 반환해야한다. (Apple에서는 이를 completion Handler라고 명칭함) func getImages(url: String, completionHandler: @escaping (UIImage?) -> Void) { let url = URL(strin..

🍎 iOS/GCD 2023.07.23

[iOS/GCD] 1. 코어/스레드/프로세스, 직렬/병렬/동시, 동기/비동기

코어와 스레드, 프로세스 용어 정리 코어 : CPU의 핵심으로 CPU에서 실제로 일을 처리하는 본체 - 코어가 많다 = 작업을 처리해줄 친구가 많다. (알바생이 많다) - 코어는 한 번에 한 가지 일만 처리할 수 있음. 그러나 실제로는 싱글 코어를 가진 컴퓨터라도 음악을 들으며 문서를 작성하는 등 여러 작업을 동시에 처리할 수 있다. - 햄버거집에 알바생이 1명 있다고 가정해보면 (싱글코어), 치킨 햄버거, 불고기 햄버거, 치즈 햄버거를 동시에 만들고 있음을 볼 수 있다. 하지만 이것은 한 번에 만드는 것처럼 보이는 것이지, 사실은 일을 짧은 단위로 나누어서 하나씩 번갈아가면서 요리를 하는 것임 (이걸 운영체제 용어로 시분할! 이라고 함) - 각 햄버거의 빵을 올리고, 불고기를 굽고, 치즈를 올리고 ....

🍎 iOS/GCD 2023.03.10
반응형