동시성
딕셔너리 캐시의 스레드 안전
메시지 목록 화면에서 셀마다 프로필 이미지를 비동기로 내려받아 [String: UIImage] 딕셔너리에 캐시합니다. 여러 스레드가 동시에 읽고 쓰면서 가끔 크래시가 납니다. 왜 크래시가 나나요?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
메시지 목록 화면에서 셀마다 프로필 이미지를 비동기로 내려받아 [String: UIImage] 딕셔너리에 캐시합니다. 여러 스레드가 동시에 읽고 쓰면서 가끔 크래시가 납니다. 왜 크래시가 나나요?
Swift Dictionary는 스레드 안전하지 않다. 쓰기 중 재해싱·COW 버퍼 교체가 일어나는 동안 다른 스레드가 읽으면 해제됐거나 반쯤 옮겨진 버퍼를 건드려 잘못된 메모리 접근으로 크래시한다.
동시성주관식기초
여러 스레드에서 호출되는 아래 코드는 count가 기대보다 작게 나옵니다. 왜 그런지 CPU 수준에서 설명해 주세요. …
#lock #actor
CS 기초·알고리즘주관식심화
메모리 이미지 캐시를 LRU로 직접 구현해야 합니다. 어떤 자료구조로 get/put을 O(1)로 만들 수 있나요?
#dictionary #nscache
메모리·ARC객관식심화
Objective-C에서 @property (atomic) int a;를 선언하고, 여러 스레드에서 self.a = self.a + 1을 합쳐서 10,000번…
#thread-safety #lock
네트워킹객관식기초
NSCache가 Dictionary와 다른 점으로 옳은 것을 모두 고르세요.
#dictionary #nscache