GCD
-
[GCD] DispatchQueue.. main큐와 gloabal큐? sync와 asnyc? 궁금증 해결해보자.앱등이에게 살충제를 뿌린다./Swift 2018. 9. 4. 16:22
많은 언어에서 제공하는 비동기 처리 방식.Swift(또는 objc)에는 GCD가 있다. iOS개발을 하다보면, 아래 코드를 많이 보고, 또 사용할 수 밖에 없다.DispatchQueue.main.async {//...} 구글에 GCD를 쳐보면 무수히 많은 정리문서가 존재한다. (심지어 한글로 포스팅한 글도 엄청 많음)그래서 난 나만의 정리를..위해서 포스트를 작성한다. 아래 코드의 결과를 정확히 예측할 수 있다면, 학습이 되었다고 판단하겠다. UIViewController의 viewDidLoad()에서 작성한 코드니까, 아래 코드는 메인스레드에서 작동한다는 전제가 있다. override func viewDidLoad() { super.viewDidLoad() DispatchQueue.global().sy..
-
[iOS/GCD] dispatch_async, dispatch_sync앱등이에게 살충제를 뿌린다./고무망치를 도와라 2016. 11. 12. 20:53
1. dispatch_async(queue, block)queue에 block을 비동기로 실행하도록 작업을 추가한다. 이 때, queue가 concurrent queue라면, 원하는대로 작업이 가능함하지만 serial queue라면? asnyc로 추가한 의미가 사라지는 것인가? 2. dispatch_sync(queue, block)queue에 block을 동기로 실행하도록 작업을 추가한다. 이 때는 queue가 serial queue인지, concurrent queue인지 무의미한 것이 아닌가?concurrent queue에 넣어봤자, 동기로 처리할텐데 즉..dispatch_sync에서는 어떤 큐에 넣어도 같은 결과가 나오고,dispatch_asnyc에서는 큐가 serial인지 concurrent인지에 ..
-
[iOS] Objective-C로 하는 비동기 처리앱등이에게 살충제를 뿌린다./iOS 2016. 1. 20. 23:40
비동기 처리 -asynchronous operation 또는 concurrent라고도 할 수 있겠습니다. 소요시간이 오래 걸리는 작업을 백그라운드에서 돌린 뒤 메인스레드에 반영하는 용도로 많이 사용되죠? 제가 아는 3가지 기법을 간략히 소개할까합니다. 1. NSObject객체의 - performSelectorInBackground:withObject: 메소드 입니다. NSObject객체에 구현되어 있으므로 사실상 모든 객체에서 호출이 가능합니다. 말그대로 백그라운드에서 실행하고 싶은 메소드를 SEL타입으로 파라미터에 전달하면 백그라운드에서 실행이 됩니다. 추가로- performSelectorOnMainThread:withObject:waitUntilDone: 메소드는 SEL타입을 메인스레드에 추가하는 역..