Daily iOS
동시성

디스패치 큐 직접 설계

GCD 없이 MyQueue를 직접 설계해 보세요. async(_:)로 클로저를 넣으면 백그라운드 스레드 풀이 실행하고, serial/concurrent 모드를 지원하며, sync(_:)도 제공해야 합니다. 핵심 자료구조와 동기화 원리를 설명해 주세요.

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

락+조건 변수로 보호되는 FIFO 작업 큐와 고정 크기 워커 스레드 풀이 핵심이다. serial 모드는 '실행 중 플래그'로 한 번에 하나만 꺼내고, sync는 완료 세마포어로 호출자가 기다린다. 실행은 락을 놓은 뒤에 하고 조건 대기는 while로 재검사한다.

받은 질문 공유