티스토리 뷰

golang

Concurrency Is Not Parallelism

fistful 2019. 7. 19. 14:10
반응형

개요

 

동시성 (Concurrency) 병렬성 (Parallelism) 차이를 비유로 이해해보자.

Golang 만든 파이크가 주제로 발표를 정도라면 구분에 의미가 있을 것이다.

 

관련 링크

 

- 블로그: https://blog.golang.org/concurrency-is-not-parallelism

- 동영상: https://youtu.be/cN_DpYBzKso

- 슬라이드: https://talks.golang.org/2012/waza.slide#1

 

 

동시성과 병렬성

 

병렬성 그대로 같은 시간대에 이상의 일이 함께 이뤄지는 것이다.

동시성 진정한 의미는 여러 작업을 조율하여 결과를 만들어내는 것이다.

 

 

자동차를 조립하는 것에 비유해보자

 

백명의 일꾼이 각각 자신 앞의 차량 프레임에, 카시트를 같은 시간대에 조립한다고 해보자.

이것이 병렬성이다. (Parallelism)

 

그렇다면 동시성 (Concurrency) 무얼까?

1) 바퀴의 조립은 공정의 가장 마지막에 하자

2) 전체 공정 중에서 가장 시간이 많이 걸리는 카시트 조립에는 일꾼을 백명을 투입하자.

- 하반기에는 독일에서 수입해오는 자동화 기기를 이용해서 조립하자

3) 공정과 공정 사이에는 LED Beep 음을 통해 이전 공정에서 작업이 완료되었음을 알리자

 

이와 같이 다양한 공정을 어떤 순서와 조합으로 지를 조율하는 것이다. 조율이라는 표현이 마음에 든다.

 

반응형
댓글
댓글쓰기 폼