25. 병행성 관련 버그 25.1 비교착 상태 오류 원자성 위반 오류 다수의 메모리 참조 연산들 간에 있어 예상했던 직렬성(serializability)이 보장되지 않았다.(즉, 코드의 일부에 원자성이 요구되었으나, 실행시에 그 원자성이 위반되었다.) 문제의 해결책은 공유 변수 참조 앞 뒤에 락을 추가해준다. 이 자료구조를 사용하는 모든 코드들이 이 락을 먼저 획득해야 한다. 순서 위반 오류 두 개의(그룹의) 메모리 참조 간의 순서가 바뀌었다.(즉, A가 항상 B보다 먼저 실행되어야 하지만 실행 중에 그 순서가 지켜지지 않았다.) 오류를 수정하는 방법은 순서를 강제하는 것이다. 이러한 종류의 동기화에는 컨디션 변수가 잘 맞는다. 쓰레드간의 순서가 문제가 된다면 컨디션 변수(또는 세마포어)를 사용하여 해결..