멀티스레드에서 락(lock)을 사용할 때, 락을 어떤 순서로 획득하느냐는 데드락(deadlock)을 방지하고 프로그램의 안정성을 유지하는 데 정말 중요하다. 일반적으로 lock을 얻는 순서에 몇 가지 규칙이 있다
일관된 순서:
중첩된(nested) lock 피하기:
ex) 두 개의 lock A와 B가 있다면, 모든 스레드는 같은 규칙에 따라 lock을 획득해야 한다:
이러한 락 획득 순서 규칙을 따르면 데드락을 예방하고 안정성을 확보할 수 있지만, 모든 상황에서 동일한 락 순서를 사용할 수 있는 것은 아니며, 프로그램의 구조에 따라 lock 순서를 조정해야 할 수도 있다.