반응형

GCD 3

멀티 스레딩을 위한 API(Operation Queue, NSOperation Queue)

안녕하세요. KataRN입니다. 오늘은 OperationQueue에 대해 알아보겠습니다. (NSOperation, NSOperationQueue는 Object-C 클래스이고, Swift는 앞에 NS 접두사를 떼면 됩니다.) OperationQueue는 Operation들의 스케쥴링과 실행을 담당하게 됩니다. Operation이 담겨 Queue처럼 FIFO으로 동작하게 됩니다. 더 높은 우선순위의 작업이 들어오게 되면 낮은 우선순위보다 빠르게 실행되는 우선순위큐 형식입니다. 1. addDependency(_:) 다른 Operation에 Dependency를 갖습니다. 현재 operation보다 매개변수의 #Operation#이 더 먼저 완료되어야 하는경우 추가합니다. 이는 작업 큐에 들어가 있을 때 실행됩..

멀티 스레딩을 위한 API(GCD Queue)

안녕하세요. KataRN입니다. 오늘은 GCD Queue에 대해 작성하려고합니다. GCD (Grand Central Dispatch)는 멀티 코어 프로세서 시스템에 대한 응용 프로그램 지원을 최적화하기 위해 Apple에서 개발한 기술입니다. 애플 공식 문서에서도 Thread 클래스 대신 GCD 사용을 권장한다고 합니다. GCD는 백그라운드에서 스레드를 관리하면서 동시적으로 작업을 실행시키는 저수준 API를 제공하는 라이브러리입니다. Dispatch Queues: 디스패치 큐는 FIFO 순서로 작업을 실행시키는 역할을 담당 Serial Dispatch Queue: 시리얼 디스패치 큐는 한번에 한 작업만 실행 Concurrent Dispatch Queue: 컨커런트 디스패치 큐는 시작한 작업이 끝나는것을 기..

최대공약수, 최소공배수 구하기

안녕하세요. KataRN입니다. 오늘은 최대공약수와 최소 공배수에 대해 알아보겠습니다. 최대공약수와 최소공배수에 대한 문제를 풀기 위해 코드를 작성했으나 전부 시간초과가 났습니다. 이건 답은 같아도 비효율적이기 때문입니다. 그래서 제가 내린 결론은 무조건 '유클리드 호제법을 이용하여 만들어야한다' 입니다. 유클리드 호제법이란? 유클리드 호제법은 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 최대공약수, 최소공배수 코드(swift) //최대공약수 func gcd(_ a: Int, _ b: Int) -> Int { if b == 0 { return a } else { return gcd(b,..

반응형