콘텐츠로 건너뛰기
Home » operation queue

operation queue

작업 큐를 구현해보자 – Python

어떤 함수와 인자값을 전달해서 백그라운드에서 처리되도록 하려면 스레드를 사용해서 작업할 수 있다. 스레드를 사용하면 동시에 여러 개의 작업을 진행시키는 것도 가능하다. 문제는 데이터가 단시간에 다량으로 들어오는 경우인데, 여러 스레드가 동시에 돌아가는 경우 실질적으로는 모두 동시에 돌아가는 것이 아니라 CPU가 “매우 빠른 속도로” 각 스레드 사이의 작업을 전환해가면서 처리하게 된다. 따라서 스레드가 너무 많아지게 되면 스레드 사이의 스위칭에 많은 비용이 들어갈 뿐만 아니라 프로세스 자체가 불안정하게 된다. 한정된 스레드 개수만 사용하여 더 많은 데이터를 다루기 위해서는 스레드 풀이라고도 불리는 작업 큐를… 더 보기 »작업 큐를 구현해보자 – Python

[Objective C] 다중처리 큐와 오퍼레이션

다음은 큐와 오퍼레이션을 사용할 때 염두에 두어야 하는 사항들이다. 1 오퍼레이션은 기본적으로 이를 시작한 스레드에서 돌아간다. 만약 오퍼레이션이 비동기적으로 작업하기를 원한다면 오퍼레이션 큐를 사용하거나 NSOperation의 서브 클래스를 만들어서 별도의 스레드에서 시작하도록 해야 한다. 2 하나의 오퍼레이션은 다른 오퍼레이션이 작업을 완료하고나서 그 작업을 시작한다. 흔한 실수는 두 개의 오퍼레이션이 서로에 대해 의존하도록 만드는 것이다. 이렇게 되면 두 개의 오퍼레이션은 서로를 계속 기다리기만 하고 아무런 작업을 하지 못한다. 결국 메모리를 소진하고 앱이 죽을 수도 있다. 3 오퍼레이션은 취소될 수 있다. 따라서 NSOperation을… 더 보기 »[Objective C] 다중처리 큐와 오퍼레이션