더북(TheBook)

이 예제에서 보았듯이 프로그램의 계산 모델은 게임의 규칙, 즉 알고리즘이 결정한다. 이 게임의 작업과 작업 사이에는 완전히 분리할 수 없는 명확한 의존 관계가 있다. 플레이어가 차례를 진행하지 않으면 게임의 승패를 판단할 수 없고, 한 플레이어가 연속으로 두 번 진행할 수도 없기(반칙이므로) 때문이다.

노트

사실 이전 단계가 완료되어야 하는 작업은 아주 많지 않다. 그 덕분에 일반적인 경우에는 상대적으로 어렵지 않게 동시성의 장점을 누릴 수 있다. 여기에 대해서는 이후 장에서 더 자세히 다루겠다.

순차 실행이 꼭 필요한 작업에는 어떤 것이 있을까? 힌트는 이전 단계가 완료되지 않아도 수행할 수 있는 단계가 있는지 살펴보면 된다.

순차 프로그래밍의 반대 개념이 동시 프로그래밍이다. 동시성은 임의의 순서로 실행해도 같은 결과를 낳는 독립적인(independent) 연산이 있다는 것을 전제로 삼는 개념이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.