Operating Systems: Three Easy Pieces - Lock-based Concurrent Data Structures
Lock을 다음 주제로 넘어가기 전에 일반 데이터 구조에 Lock을 얹어 쓰는 방법을 다룹니다. 모든 상황에 두루 통하는 방법을 찾기 어렵기 때문에 시나리오별로 나누어 살펴봅니다. 이번 챕터는 자료 구조라서 학습을 위해 파이썬(표준 라이브러리 threading)으로 같은 패턴을 옮겨 적습니다. Concurrent Counters 가장 단순한 데이터 구조 중 하나가 카운터입니다. 특정 값을 카운트하는 자료 구조로, 간단하게는 아래처럼 표현할 수 있습니다. class Counter: def __init__(self): self.value = 0 def increment(self): self.value += 1 def decrement(self): self.value -= 1 def get(self): return self.value 위 코드에 lock과 동시성을 추가해서 멀티스레드로 돌려봅시다. ...