본문 바로가기
카테고리 없음

동시성이란?

by Node.js 주니어 개발자 귤 2023. 6. 6.

동시성(Concurrency)은 동시에 여러 작업을 수행할 수 있는 능력이다

동시성은 한번에 하나의 작업만 처리하는 순차적인 방식과 달리 여러 작업을 동시에 처리할 수 있도록 하는 개념이다

 

동시성은 실제로 동시에 실행되는 것처럼 보이도록 여러 작업을 교대로 실행하고 관리하는 방식을 의미한다

이러한 작업들은 동시성 컨텍스트 내에서 독립적으로 진행되어야 한다 이때, 동시성을 구현하는 방법은 여러가지가 있다.

 

 

 

1. 멀티 스레딩

스레드(Thread)를 사용하여 여러 작업을 동시에 처리하는 방식이다.
여러 스레드를 동시에 실행시키면 하나의 프로세스에서 여러 작업을 병렬로 처리할 수 있다.

 

2. 병렬 처리

여러개의 프로세서나 코어를 사용하여 작업을 동시에 처리하는 방식이다.
병렬 처리는 동시성을 달성하기 위한 하나의 방법이다.

 

3. 이벤트 기반 동시성

이벤트에 응답하여 동작하는 작업을 처리하는 방식이다.
이벤트가 발생하면 해당 이벤트에 대한 콜백 함수를 실행하거나 이벤트 큐(Queue)에 이벤트를 추가하여 순차적으로 처리한다.

 

 

동시성을 사용하면 작업을 빠르게 처리할 수 있지만 여러 작업이 동시에 실행되기 때문에 데이터 동기화와 같은 문제를 고려해야 한다. 동시에 접근하는 데이터의 일관성과 정합성을 보장하기 위해 동기화 기법을 사용해야 한다.