동시성과 병렬성 - ChoDragon9/posts GitHub Wiki

사내 발표 자료 스크랩한 자료

동시성 !== 병렬성

  • 동시성은 동시에 얼마나 다양한 일들을 컨트럴할 수 있는지에 관심
  • 병렬성은 동시에 얼마나 많이 연산을 할 수 있는지에 관심
  • 동시성이 구조에 대한 것이라면, 병렬성은 실행에 대한 것이다.

동시성 구현

  • 많은 언어들이 다수의 스레드를 통해 동시성을 구현
  • 다수의 스레드로 분산되어 실행되기 때문에 동시성 버그는 재현하기 어려움
  • 만약 여러 스레드가 동시에 하나의 자원을 공유하게 되면 난리남

동시성 구현

  • 반면 자바스크립트는 단일 스레드이므로 스레드간 데이터를 공유하는 일이 없고 내부의 코드는 원자적으로 실행된다(run to completion).
  • 수많은 이벤트를 빠르게 처리해서 고수준 관점에서 볼때 동시에 처리되고 있는 것처럼 보인다.