2025/04/15 2

[CS] 동시성과 병렬성의 개념

이 글에서는 멀티스레드 프로그래밍의 핵심 개념인 동시성(Concurrency) 과 병렬성(Parallelism) 을 구체적으로 설명하고, Java Spring 프레임워크에서 이를 어떻게 확인하고 활용할 수 있는지 예제 코드와 함께 살펴본다.📌 1. 동시성(Concurrency)이란?동시성은 여러 작업이 논리적으로 동시에 실행되는 것처럼 보이도록 처리하는 방식을 의미한다.▶︎ 동시성의 핵심 개념단일 CPU에서도 구현 가능여러 작업을 번갈아 실행하면서, 사용자는 작업이 동시에 이루어지고 있다고 느낀다.컨텍스트 스위칭(Context Switching)을 활용하여 작업 간 전환이 빠르게 이루어진다.▶︎ 동시성 예시웹서버가 여러 클라이언트 요청을 동시에 처리하는 경우Java에서 여러 스레드(Thread)를 만들..

CS 2025.04.15

[CS] Thread의 Race Condition 해결

다음은 멀티스레드 환경에서의 공유 변수 접근 시 발생할 수 있는 경쟁 상태(Race Condition)와 이를 해결하기 위한 방법을 Java의 관점에서 분석한 글이다. 이 글에서는 공유 변수의 단순 할당과 증감(++) 연산의 차이를 설명하고, 예제 코드를 통해 각 변수 유형 및 동기화 방식에 따른 결과를 정리하였다.멀티스레드 환경에서의 공유 변수 접근과 Race Condition 분석멀티스레드 환경에서는 하나의 변수를 여러 스레드가 동시에 접근하는 경우, 예상과 다른 결과가 나타나는 경우가 있다. 이는 주로 경쟁 상태(Race Condition) 때문이다. 특히 공유 변수에 단순 값 할당과 증감 연산(++)은 결과에 큰 차이를 보인다. 이에 대한 원인과 해결책을 구체적으로 살펴본다.1. 경쟁 상태(Rac..

CS 2025.04.15