반응형

Queue 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#이 더 먼저 완료되어야 하는경우 추가합니다. 이는 작업 큐에 들어가 있을 때 실행됩..

타이머(DispatchSourceTimer), 시간측정 다루기

안녕하세요. KataRN입니다. 오늘은 시간측정에 대해 알아보려합니다. 시간측정하는 방법은 사실 많은데요.. 이 방법이 제일 편하고 좋은것 같아서 글로 남기려고합니다. 참고 : 애플공식문서 https://developer.apple.com/documentation/dispatch/dispatchsourcetimer Apple Developer Documentation developer.apple.com 아래 코드와 주석으로 설명해드리겠습니다. var timer: DispatchSourceTimer? //원하는 쓰레드 지정 timer = DispatchSource.makeTimerSource(flags: [], queue: DispatchQueue.main) //바로시작을 원하니까 dedline은 .now..

우선순위 큐, 힙 구현하기

안녕하세요. KataRN입니다. 오랜만에 글을 쓰네요. 오늘은 우선순위 큐, 힙에 대해 알아보겠습니다. 오늘도 차례차례 알아볼게요. 1. 큐란 무엇일까요? 먼저 들어간 데이터가 먼저 나가는 데이터구조를 큐(Queue)라고 하죠. 2. 우선순위 큐란 무엇일까요? 우선순위 큐는 먼저 들어간 데이터가 먼저 나가는 것이 아닌 우선순위가 높은 순서대로 데이터가 나가는 것을 우선순위 큐(Priority Queue)라고 합니다. 3. 힙이란 무엇일까요? 힙(Heap)은 우선순위 큐를 위해 고안된 완전이진트리 형태의 자료구조입니다. 여러 개의 값 중 최댓값 또는 최솟값을 찾아내는 연산이 빠르다. (우선순위가 최대이면 최댓값, 최소이면 최솟값입니다.) 4. 이것을 왜 알아야하나? 단순하게 알고리즘에서 최대값 최소값을 구..

반응형