동시성
공유 캐시의 data race
여러 이미지 요청이 같은 메모리 캐시 딕셔너리를 동시에 읽고 씁니다. 가끔 크래시가 나고, 로그를 보면 같은 URL을 두 번 내려받은 흔적도 있습니다. Lock 대신 actor로 고친다면 어떤 상태를 actor 안에 두겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
여러 이미지 요청이 같은 메모리 캐시 딕셔너리를 동시에 읽고 씁니다. 가끔 크래시가 나고, 로그를 보면 같은 URL을 두 번 내려받은 흔적도 있습니다. Lock 대신 actor로 고친다면 어떤 상태를 actor 안에 두겠습니까?
완성된 이미지 딕셔너리와 지금 내려받는 중인 요청 목록, 이 두 가변 상태를 actor 안에 두고 밖에서는 await로만 접근하게 하면 딕셔너리를 동시에 쓰는 데이터 레이스가 컴파일 단계에서 사라진다.
동시성주관식기초
여러 스레드에서 호출되는 아래 코드는 count가 기대보다 작게 나옵니다. 왜 그런지 CPU 수준에서 설명해 주세요. …
#actor #data-race
테스트주관식딥다이브
actor와 Task를 사용하는 동시성 코드에서 데이터 레이스를 테스트로 재현하거나 검출하려면 어떻게 하나요?
#actor #data-race
동시성주관식딥다이브
Swift Concurrency 로 만든 아래 이미지 캐시 actor는 같은 키에 대해 네트워크 요청이 두 번 나가는 경우가 있습니다. actor가 상태를…
#actor
동시성객관식심화
Swift 6 strict concurrency에서 추가 조치 없이 Sendable로 취급되는(또는 자동 채택되는) 것을 모두 고르세요.
#actor