본문 바로가기

면접/cs

동시성처리

처리해야할 컴퓨팅 작업(task)가 여러개일때,

단일 처리 장비에서 2가지 이상의 작업을 동시적으로 실행하는 방식으로

동시성 처리, 병렬성 처리가 있다.

 

 

동시성 처리

1개 코어는 한번에 한가지의 작업만 처리할수 있다. 

core에서 시분할, 시간을 쪼개서 두개의 작업을 번갈아가면서 처리 => 두개가 동시에 처리되는 것처럼 보인다.

로드시간(작업이 어디까지 처리됬는지에 대한 기록을 읽어오는것)이 필요하므로, 

이 로드시간이 코어에 부하를 줄 수 있다.

 

 

윈도우에서 한번에 여러가지 작업이 되어야하는 경우(예를들어 브라우저를 돌리는 동시에 카톡을 켠다..)

 

 

병렬성 처리

2개 이상의 작업이 동일한 시간에 실제로 동시에 처리되는 방식

2개 이상의 core를 가진 컴퓨터에서 가능한 방식이다

 

동시성 &병렬성 혼용을 하여

다중 작업 효율을 극대화 할수도 있다.

 

 

 

작업간 관계가 복잡해서 동시적 처리 방식을 적용하기 어려울 수도 있는데,

이것을 자동으로 스케쥴링 해주는 라이브러리들이 많이 있는 이유다.

 

자바스크립트 동시성 모델

이벤트 루프에 기반한 동시성 모델이라는 것을 가지기 때문에,

예를들어 ajax를 보내는 것과 응답을 받는것, 각각을 다 이벤트로 처리하여, 다른 처리 할 수 있는 작업을 하게되어 ui

쓰레드가 멈추는 것을 막을수있다. 

 

 

 


 

  1. 동시성 처리를 위한 기술은 어떤게 있고, 어떻게 구현을 해야 하는가?

동시성을 동작하게 하는법

1) 비동기

callback, promise, await  => 이게 발전해서 rxjs, swr, akka 등의 라이브러리들이 있음

2) 멀티 쓰레드

 

'면접 > cs' 카테고리의 다른 글

도커, 젠킨스  (0) 2022.02.17
vpn.. 그리고 터널링  (0) 2022.02.12
쓰레드, 멀티쓰레드  (0) 2022.02.12
동기 vs 블로킹, 비동기 vs 논블로킹  (0) 2022.02.12
브라우저와 스크립트 엔진  (0) 2022.02.12