동시성
디스패치 큐 직접 설계
GCD 없이 MyQueue를 직접 설계해 보세요. async(_:)로 클로저를 넣으면 백그라운드 스레드 풀이 실행하고, serial/concurrent 모드를 지원하며, sync(_:)도 제공해야 합니다. 핵심 자료구조와 동기화 원리를 설명해 주세요.
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
GCD 없이 MyQueue를 직접 설계해 보세요. async(_:)로 클로저를 넣으면 백그라운드 스레드 풀이 실행하고, serial/concurrent 모드를 지원하며, sync(_:)도 제공해야 합니다. 핵심 자료구조와 동기화 원리를 설명해 주세요.
락+조건 변수로 보호되는 FIFO 작업 큐와 고정 크기 워커 스레드 풀이 핵심이다. serial 모드는 '실행 중 플래그'로 한 번에 하나만 꺼내고, sync는 완료 세마포어로 호출자가 기다린다. 실행은 락을 놓은 뒤에 하고 조건 대기는 while로 재검사한다.
동시성주관식입문
GCD(Grand Central Dispatch)가 무엇이고, 스레드를 직접 만드는 것 대신 왜 큐에 작업을 넘기는 방식을 쓰나요?
#thread-pool #serial #concurrent
동시성객관식입문
sync/async와 serial/concurrent 큐에 대한 설명으로 맞는 것을 모두 고르세요.
#serial #concurrent
동시성객관식심화
GCD 큐를 받는 다음 함수를 메인 스레드에서 호출하면 반환까지 약 몇 초가 걸릴까요? queue가 (1) 직렬 큐일 때와 (2) 동시(concurrent)…
#serial #concurrent
동시성객관식기초
다음 GCD 코드의 출력 결과는? 그리고 queue.async가 호출될 때마다 새 스레드가 만들어지나요? …
#thread-pool #concurrent