JAVA 책으로 공부중인데 앞 쪽에 JAVA의 특징으로 멀티스레드가 언급되어 있었습니다

동시성과 병렬성에 대해서도 잠깐 언급되어 있는데

이 두 개념은 봐도봐도 헷갈립니다

 

그래서 이를 정리해봤습니다

 

동시성

동시성은 여러 작업이 동시에 진행되는 것처럼 보이게 하는 개념입니다

이는 시간상으로 겹치는 것처럼 보이지만, 실제로는 동시에 실행되지 않을 수 있습니다

프로그램이 여러 작업을 동시에 다루는 것을 통해, 시스템의 응답성을 향상시키고 작업을 더 효율적으로 다룰 수 있습니다

 

병렬성

병렬성은 여러 작업이 동시에 실행되는 개념으로, 실제로 동시에 여러 작업이 처리됩니다

주로 다중 코어 또는 다중 프로세서 시스템에서 성능을 극대화하기 위해 사용됩니다

 

차이점

- 실행 방식: 동시성은 하나의 프로세스 내에서 여러 스레드가 번갈아가면 실행되지만 병렬성은 여러 프로세스나 스레드가 동시에 실행됩니다

- 목적: 동시성은 주로 입출력 바운드 작업에 유용하며, 병렬성은 CPU 바운드 작업에 유용합니다

 

+ Recent posts