더북(TheBook)

동시성과 병렬성의 차이를 더 잘 이해하려면 다음과 같은 점에 주목하면 이해하기 쉽다.

• 애플리케이션은 동시적이지만 병렬적이지 않을 수 있다. 일정한 시간 동안 두 가지 이상의 일(동시에 하지 않더라도 두 가지 일을 번갈아가며 할 수 있다. 더 자세한 내용은 6장에서 설명한다)을 처리한다.

• 애플리케이션은 병렬적이지만 동시적이지 않을 수 있다. 단일 작업의 하위 작업 여러 개를 동시에 처리하는 경우가 이에 해당한다.

• 애플리케이션은 병렬적이지도 동시적이지도 않을 수 있다. 한 번에 한 가지 작업을 순차적으로 처리하며, 이 작업을 구성하는 하위 작업이 없을 때 해당한다.

• 애플리케이션은 병렬적이면서 동시적일 수 있다. 여러 개의 작업을, 또는 단일 작업의 하위 작업 여러 개를 동시에 (그리고 병렬로 실행해서) 처리할 때 해당한다.

해시 테이블에 값을 추가하는 프로그램이 있다고 하자. 해시 테이블에 값을 추가하는 연산을 여러 코어가 나누어 처리하는 것은 병렬성에 해당하고, 해시 테이블에 접근하는 것은 동시성에 해당한다. 아직 이해가 잘 되지 않는다고 해도 괜찮다.

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