더북(TheBook)

1.16.2 잠금 순서 꼬임

1.8절에서 살펴본 잠금 순서 규칙을 지키면 됩니다만, 프로그램 규모가 커지면 이 규칙을 준수하기가 생각보다 어렵습니다. 제일 좋은 것은 잠금 순서 규칙을 최대한 적게 유지하는 것입니다.

int a;
mutex a_mutex;
 
int b;
mutex b_mutex;
 
void func1()
{
  lock(a_mutex);
  a...;
  lock(b_mutex);
  b...;
}
 
void func2()
{
  lock(b_mutex);
  b...;
  lock(a_mutex);
  a...;
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.